Submit Search
Upload
Tetris Algorithm
•
1 like
•
3,905 views
Takaaki Suzuki
Follow
Hokuriku ComCamp 2016 powered by MVPs で行ったセッション「C# ドキドキ・ライブコーディング」で作成したテトリスの解説資料
Read less
Read more
Technology
Report
Share
Report
Share
1 of 15
Recommended
Mtddc Tokyo 2012
Mtddc Tokyo 2012
Tomohiro Okuwaki
200513 ur
200513 ur
NoriakiAndo
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
cloudconductor
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
Shotaro Suzuki
OpenCV→Swift3.0.1
OpenCV→Swift3.0.1
Daisuke Nagata
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
DoNabe1
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading
Takuya Minagawa
Recommended
Mtddc Tokyo 2012
Mtddc Tokyo 2012
Tomohiro Okuwaki
200513 ur
200513 ur
NoriakiAndo
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
CloudConductorの特長と最新動向(OSSユーザーのための勉強会#7)
cloudconductor
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
Shotaro Suzuki
OpenCV→Swift3.0.1
OpenCV→Swift3.0.1
Daisuke Nagata
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
ロボコン勉強会向けStm32を用いてマスタースレーブシステム
DoNabe1
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading
Takuya Minagawa
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
irgaly
MVVM入門
MVVM入門
Kazutoshi Urabe
KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例
masakazusegawa
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII
クラウド・コンピューティングの普及に伴うMSPの現状と課題
クラウド・コンピューティングの普及に伴うMSPの現状と課題
Masahito Zembutsu
大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開
Rakuten Group, Inc.
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方
Kazuki Shibata
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Yoshito Tabuchi
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Daizen Ikehara
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
NTT DATA Technology & Innovation
TECHTALK 20210427 Qlik Sense マッシュアップ開発 - チャートの埋め込みから高度な開発詳細まで
TECHTALK 20210427 Qlik Sense マッシュアップ開発 - チャートの埋め込みから高度な開発詳細まで
QlikPresalesJapan
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
Unity Technologies Japan K.K.
Mnm 20181129
Mnm 20181129
Motomasa Iyoki
U-22プログラミング・コンテスト2024 作品説明動画制作のポイント【2024年4月公開】
U-22プログラミング・コンテスト2024 作品説明動画制作のポイント【2024年4月公開】
U-22プログラミング・コンテスト運営事務局
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Akira Inoue
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターン
Yuta Matsumura
TokyowebminingInferNet
TokyowebminingInferNet
正志 坪坂
Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界
Makoto Nishimura
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
Seki Yousuke
.NET Micro Framework / .NET Gadgeteer
.NET Micro Framework / .NET Gadgeteer
Knowledge & Experience
5 分で学ぶ Interpolated String Handler
5 分で学ぶ Interpolated String Handler
Takaaki Suzuki
C# における Redis 徹底活用
C# における Redis 徹底活用
Takaaki Suzuki
More Related Content
Similar to Tetris Algorithm
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
irgaly
MVVM入門
MVVM入門
Kazutoshi Urabe
KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例
masakazusegawa
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII
クラウド・コンピューティングの普及に伴うMSPの現状と課題
クラウド・コンピューティングの普及に伴うMSPの現状と課題
Masahito Zembutsu
大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開
Rakuten Group, Inc.
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方
Kazuki Shibata
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Yoshito Tabuchi
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Daizen Ikehara
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
NTT DATA Technology & Innovation
TECHTALK 20210427 Qlik Sense マッシュアップ開発 - チャートの埋め込みから高度な開発詳細まで
TECHTALK 20210427 Qlik Sense マッシュアップ開発 - チャートの埋め込みから高度な開発詳細まで
QlikPresalesJapan
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
Unity Technologies Japan K.K.
Mnm 20181129
Mnm 20181129
Motomasa Iyoki
U-22プログラミング・コンテスト2024 作品説明動画制作のポイント【2024年4月公開】
U-22プログラミング・コンテスト2024 作品説明動画制作のポイント【2024年4月公開】
U-22プログラミング・コンテスト運営事務局
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Akira Inoue
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターン
Yuta Matsumura
TokyowebminingInferNet
TokyowebminingInferNet
正志 坪坂
Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界
Makoto Nishimura
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
Seki Yousuke
.NET Micro Framework / .NET Gadgeteer
.NET Micro Framework / .NET Gadgeteer
Knowledge & Experience
Similar to Tetris Algorithm
(20)
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
MVVM入門
MVVM入門
KnockoutJSを使用したアプリケーションの構築例
KnockoutJSを使用したアプリケーションの構築例
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
クラウド・コンピューティングの普及に伴うMSPの現状と課題
クラウド・コンピューティングの普及に伴うMSPの現状と課題
大規模なリアルタイム監視の導入と展開
大規模なリアルタイム監視の導入と展開
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
TECHTALK 20210427 Qlik Sense マッシュアップ開発 - チャートの埋め込みから高度な開発詳細まで
TECHTALK 20210427 Qlik Sense マッシュアップ開発 - チャートの埋め込みから高度な開発詳細まで
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
Mnm 20181129
Mnm 20181129
U-22プログラミング・コンテスト2024 作品説明動画制作のポイント【2024年4月公開】
U-22プログラミング・コンテスト2024 作品説明動画制作のポイント【2024年4月公開】
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターン
TokyowebminingInferNet
TokyowebminingInferNet
Windows phone & windows 8で見えてくるメトロの世界
Windows phone & windows 8で見えてくるメトロの世界
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
.NET Micro Framework / .NET Gadgeteer
.NET Micro Framework / .NET Gadgeteer
More from Takaaki Suzuki
5 分で学ぶ Interpolated String Handler
5 分で学ぶ Interpolated String Handler
Takaaki Suzuki
C# における Redis 徹底活用
C# における Redis 徹底活用
Takaaki Suzuki
Inside FastEnum
Inside FastEnum
Takaaki Suzuki
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
30min Serverless xTuber
30min Serverless xTuber
Takaaki Suzuki
C# 7 New Features
C# 7 New Features
Takaaki Suzuki
Live Coding で学ぶ C# 7
Live Coding で学ぶ C# 7
Takaaki Suzuki
C# 7 Current Status
C# 7 Current Status
Takaaki Suzuki
4 Colors Othello’s Algorithm
4 Colors Othello’s Algorithm
Takaaki Suzuki
Sharing Deep Dive
Sharing Deep Dive
Takaaki Suzuki
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
Takaaki Suzuki
DeclarativeSql
DeclarativeSql
Takaaki Suzuki
Sevens Algorithm
Sevens Algorithm
Takaaki Suzuki
Friendly
Friendly
Takaaki Suzuki
WPF Interoperability
WPF Interoperability
Takaaki Suzuki
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
酒の肴はC# vNext
酒の肴はC# vNext
Takaaki Suzuki
Async History in .NET
Async History in .NET
Takaaki Suzuki
SignalR Tune-up
SignalR Tune-up
Takaaki Suzuki
Twilioと.NET
Twilioと.NET
Takaaki Suzuki
More from Takaaki Suzuki
(20)
5 分で学ぶ Interpolated String Handler
5 分で学ぶ Interpolated String Handler
C# における Redis 徹底活用
C# における Redis 徹底活用
Inside FastEnum
Inside FastEnum
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
30min Serverless xTuber
30min Serverless xTuber
C# 7 New Features
C# 7 New Features
Live Coding で学ぶ C# 7
Live Coding で学ぶ C# 7
C# 7 Current Status
C# 7 Current Status
4 Colors Othello’s Algorithm
4 Colors Othello’s Algorithm
Sharing Deep Dive
Sharing Deep Dive
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
DeclarativeSql
DeclarativeSql
Sevens Algorithm
Sevens Algorithm
Friendly
Friendly
WPF Interoperability
WPF Interoperability
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
酒の肴はC# vNext
酒の肴はC# vNext
Async History in .NET
Async History in .NET
SignalR Tune-up
SignalR Tune-up
Twilioと.NET
Twilioと.NET
Recently uploaded
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Recently uploaded
(9)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Tetris Algorithm
1.
Hokuriku ComCamp 2016
powered by MVPs Tetris Algorithm - 僕が考えた最強のテトリス実装方針 -
2.
Name 鈴木 孝明 Twitter Account @xin9le Award Microsoft
MVP for Visual Studio and Development Technologies Web Site http://xin9le.net About Me
3.
4.
実装方針とアルゴリズム How to implement
5.
脱フレームベースの描画 テトリスはキー入力と落下タイマーのみ (= イベントベース) フレームごとの描画を排除し、軽量化と高速化を図る MVVM構造 データバインドを使った画面更新 描画の実装ではなくモデルの実装に注力すべき using
WPF;
6.
MVVM構造 (Model –
View – ViewModel) View ViewModel Model Data Binding Commands Notifications どんな画面に するか 画面をどう 制御するか アプリ固有の 実装
7.
Tetrimino 形状と色 (=種類) を持ったブロックの集合 ユーザーはこれを移動したり回したりする Block テトリミノを構成するひとつひとつのブロック 色と座標を持っている 構成要素
#1
8.
配置済みブロック 移動できなくなったテトリミノの成れの果て ブロックのコレクションとして管理される 構成要素 #2
9.
Field テトリミノの回転/移動などを表示するところ セルの集合体 Cell ブロックを表示するマス目 2次元配列で管理されている 構成要素 #3
10.
移動基準点 テトリミノを囲える最小の正方形の左上セル 回転軸 テトリミノを囲える最小の正方形の中心点 ex. 長い棒の場合は 4×4
なのでセルが中心にはならない 移動/回転の基準点
11.
基本動作 何かに衝突しない範囲で 1 セルずつ移動
/ 90度回転 下方向移動 タイマーを使った自動落下 ↓キーで移動してる間はタイマーを停止する 床/ブロックにぶつかったら配置済みブロック化する テトリミノの移動/回転
12.
壁/床との衝突 移動先/回転後の座標を持つブロックに フィールド外の座標のものがひとつ以上含まれる ブロック同士の衝突 移動先/回転後の座標を持つブロックに 配置済みブロックと同じ座標のものがひとつ以上存在する 衝突判定
13.
我ながら Good idea
!!
14.
https://github.com/xin9le/WpfTetris It’s Free &
Open Source Download & install as ClickOnce application
15.
Enjoy our live
coding!! Thank you