第16講テトリス開発(4つのブロックを一元的に描くまで)

第2話 全パターンの座標
長方形の場合(左から右または上から下へ表記)
001
(x-1,y),(x,y),(x+1,y),(x+2,y)

002
(x,y-1),(x,y),(x,y+1),(x,y+2)

003
(x-2,y),(x-1,y),(x,y),(x+1,y)

004
(x,y-2),(x,y-1),(x,y),(x,y+1)

正方形の場合(左上から時計回りに表記)
005
(x,y-1),(x+1,y-1),(x+1,y),(x,y)

006
(x,y),(x+1,y),(x+1,y+1),(x,y+1)

007
(x-1,y),(x,y),(x,y+1),(x-1,y+1)

008
(x-1,y-1),(x,y-1),(x,y),(x-1,y)

L字の場合(左から右へ経路に沿って)
009 
(x,y-2),(x,y-1),(x,y),(x+1,y)

010 
(x,y+1),(x,y),(x+1,y),(x+2,y)

011 
(x-1,y),(x,y),(x,y+1),(x,y+2)

012
(x-2,y),(x-1,y),(x,y),(x,y-1)

N字の場合(左から右へ経路に沿って)
013 
(x,y-1),(x,y),(x+1,y),(x+1,y+1)

014 
(x-1,y+1),(x,y+1),(x,y),(x+1,y)

015 
(x-1,y-1),(x-1,y),(x,y),(x,y+1)

016
(x-1,y),(x,y),(x,y-1),(x+1,y-1)

(x,y)は(x+0,y+0)であると解釈して数字の部分だけに注目して、
さらに、+1等のプラスは省略して再表示することにしましょう。
これらは要するにそれぞれxとyに加える数です。
長方形
001
(-1,0),(0,0),(1,0),(2,0)
002
(0,-1),(0,0),(0,1),(0,2)
003
(-2,0),(-1,0),(0,0),(1,0)
004
(0,-2),(0,-1),(0,0),(0,1)
正方形
005
(0,1),(1,1),(1,0),(0,0)
006
(0,0),(1,0),(1,1),(0,1)
007
(-1,0),(0,0),(0,1),(-1,1)
008
(-1,-1),(0,-1),(0,0),(-1,0)
L字
009 
(0,-2),(0,-1),(0,0),(1,0)
010 
(0,-1),(0,0),(1,0),(2,0)
011 
(-1,0),(0,0),(0,1),(0,2)
012
(-2,0),(-1,0),(0,0),(0,-1)
N字
013
(0,-1),(0,0),(1,0),(1,1)
014
(-1,1),(0,1),(0,0),(1,0)
015
(-1,-1),(-1,0),(0,0),(1,1)
016
(-1,0),(0,0),(0,-1),(1,-1)

ブロックの4つの種類があり、4つの回転状態があり、
それぞれ4個の正方形から構成されていますので、
4×4×4=64
通りの座標あります。
この64通りの座標を一元的(この場合は、次元という意味ではなく根源が1つという意味)
に表す方法があるでしょうか。




第1話へ  第3話へ
a

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ