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