第8講 テトリス開発(4つのブロックを一元的に描くまで)
第7話 for(i=0;i<4;i++)chizu[x+p[s][k][i]][y+q[s][k][i]]=2; のトレースその1
char p[4][4][4] = {
-1,0,1,2,
0,0,0,0,
-2,-1,0,1,
0,0,0,0,
0,1,1,0,
0,1,1,0,
-1,0,0,-1,
-1,0,0,-1,
0,0,0,1,
0,0,1,2,
-1,0,0,0,
-2,-1,0,0,
0,0,1,1,
-1,0,0,1,
-1,-1,0,0,
-1,0,0,1
};
char q[4][4][4] = {
0,0,0,0,
-1,0,1,2,
0,0,0,0,
-2,-1,0,1,
-1,-1,0,0,
0,0,1,1,
0,0,1,1,
-1,-1,0,0,
-2,-1,0,0,
1,0,0,0,
0,0,1,2,
0,0,0,-1,
-1,0,0,1,
1,1,0,0,
-1,0,0,1,
0,0,-1,-1
};
for(i=0;i<4;i++)chizu[x+p[s][k][i]][y+q[s][k][i]]=2;
をいくつかの場合でトレースしてみましょう。
s=0,k=2の場合
char p[4][4][4] = {
-1,0,1,2,
0,0,0,0,
-2,-1,0,1,
・
char q[4][4][4] = {
0,0,0,0,
-1,0,1,2,
0,0,0,0,
・
i=0のとき、
chizu[x+p[s][k][i]][y+q[s][k][i]]=2;
↓
chizu[x+p[0][2][0]][y+q[0][2][0]]=2;
↓
chizu[x+(-2)][y+0]=2;
↓
chizu[x-2][y]=2;
i=1のとき、
char p[4][4][4] = {
-1,0,1,2,
0,0,0,0,
-2,-1,0,1,
・
char q[4][4][4] = {
0,0,0,0,
-1,0,1,2,
0,0,0,0,
・
chizu[x+p[s][k][i]][y+q[s][k][i]]=2;
↓
chizu[x+p[0][2][1]][y+q[0][2][1]]=2;
↓
chizu[x+(-1)][y+0]=2;
↓
chizu[x-1][y]=2;
i=2のとき、
char p[4][4][4] = {
-1,0,1,2,
0,0,0,0,
-2,-1,0,1,
・
char q[4][4][4] = {
0,0,0,0,
-1,0,1,2,
0,0,0,0,
・
chizu[x+p[s][k][i]][y+q[s][k][i]]=2;
↓
chizu[x+p[0][2][2]][y+q[0][2][2]]=2;
↓
chizu[x+0][y+0]=2;
↓
chizu[x][y]=2;
i=3のとき、
char p[4][4][4] = {
-1,0,1,2,
0,0,0,0,
-2,-1,0,1,
・
char q[4][4][4] = {
0,0,0,0,
-1,0,1,2,
0,0,0,0,
・
chizu[x+p[s][k][i]][y+q[s][k][i]]=2;
↓
chizu[x+p[0][2][3]][y+q[0][2][3]]=2;
↓
chizu[x+1][y+0]=2;
↓
chizu[x+1][y]=2;
for文でカバーできたのは、
chizu[x-2][y]=2; chizu[x-1][y]=2; chizu[x][y]=2; chizu[x+1][y]=2;
となり、確かにを実現しています。
s=1,k=3の場合
char p[4][4][4] = {
・
-1,0,0,-1,
・
char q[4][4][4] = {
・
-1,-1,0,0,
・
i=0のとき、
chizu[x+p[s][k][i]][y+q[s][k][i]]=2;
↓
chizu[x+p[1][3][0]][y+q[1][3][0]]=2;
↓
chizu[x+(-1)][y+(-1)]=2;
↓
chizu[x-1][y-1]=2;
i=1のとき、
char p[4][4][4] = {
・
-1,0,0,-1,
・
char q[4][4][4] = {
・
-1,-1,0,0,
・
chizu[x+p[s][k][i]][y+q[s][k][i]]=2;
↓
chizu[x+p[1][3][1]][y+q[1][3][1]]=2;
↓
chizu[x+0][y+(-1)]=2;
↓
chizu[x][y-1]=2;
i=2のとき、
char p[4][4][4] = {
-1,0,1,2,
0,0,0,0,
-1,0,0,-1,
・
char q[4][4][4] = {
・
-1,-1,0,0,
・
chizu[x+p[s][k][i]][y+q[s][k][i]]=2;
↓
chizu[x+p[1][3][2]][y+q[1][3][2]]=2;
↓
chizu[x+0][y+0]=2;
↓
chizu[x][y]=2;
i=3のとき、
char p[4][4][4] = {
-1,0,1,2,
0,0,0,0,
-1,0,0,-1,
・
char q[4][4][4] = {
0,0,0,0,
-1,0,1,2,
-1,-1,0,0,
・
chizu[x+p[s][k][i]][y+q[s][k][i]]=2;
↓
chizu[x+p[1][3][3]][y+q[1][3][3]]=2;
↓
chizu[x+(-1)][y+0]=2;
↓
chizu[x-1][y]=2;
for文でカバーできたのは、
chizu[x-1][y-1]=2; chizu[x][y-1]=2; chizu[x][y]=2; chizu[x-1][y]=2;
となり、確かにを実現しています。
第6話へ 第8話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
ecliqse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
ecliqse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ