多重配列での値の取り方
Posted: 2008年3月07日(金) 08:18
0か1を記憶でいるBOOL型で10×10の多重配列 bool Data[10][10]; をつくります。
この変数の中に一定時間ごとにランダムであたいが入ります。
この中から連続した縦横3×3マスが1だったらというフラグを立てる処理を考えているのですが、
思いつきません・・・
{0,0,0,0,0, 1,1,1,0,0}, //
{0,0,0,0,0, 1,1,1,0,0}, //
{0,0,0,0,0, 1,1,1,0,0}, //
{0,0,0,0,0, 0,0,0,0,0},
{0,0,0,0,0, 0,0,0,0,0},
・
・
・
みたいなかんじです。
考えて見たのは
void CheckTask(void)
{
int x,y;
for(x=0;x<CEL_MAX_W;x++){
for(y=0;y<CEL_MAX_H;y++){
if(GameData[y][x] != 0 && Block[0][GameData[y][x]].Ptn == 1){
CheckTbl(x,y); //9マスの左上を取って関数に送る
}
}
}
}
void CheckTbl(int sx,int sy)
{
short CcheckTbl[3][3];
short Ccount;
int x,y;
bool CFlg;
Ccount=0;
CFlg=false;
for(x=0;x<3;x++){
for(y=0;y<3;y++){
CcheckTbl[y][x] = Block[0][GameData[sy+y][sx+x]].Ptn; //左上から順番に仮テーブルに代入
}
}
for(x=0;x<3;x++){
for(y=0;y<3;y++){
if(CcheckTbl[y][x] == 1)
Ccount+=1; //仮テーブルの1の数を数える
}
}
if(Ccount>=9) CFlg = true;
}
ってかんじです・・・
C++始めたばかりでわかりませんw
どなたかご教授お願いできないでしょうか?
この変数の中に一定時間ごとにランダムであたいが入ります。
この中から連続した縦横3×3マスが1だったらというフラグを立てる処理を考えているのですが、
思いつきません・・・
{0,0,0,0,0, 1,1,1,0,0}, //
{0,0,0,0,0, 1,1,1,0,0}, //
{0,0,0,0,0, 1,1,1,0,0}, //
{0,0,0,0,0, 0,0,0,0,0},
{0,0,0,0,0, 0,0,0,0,0},
・
・
・
みたいなかんじです。
考えて見たのは
void CheckTask(void)
{
int x,y;
for(x=0;x<CEL_MAX_W;x++){
for(y=0;y<CEL_MAX_H;y++){
if(GameData[y][x] != 0 && Block[0][GameData[y][x]].Ptn == 1){
CheckTbl(x,y); //9マスの左上を取って関数に送る
}
}
}
}
void CheckTbl(int sx,int sy)
{
short CcheckTbl[3][3];
short Ccount;
int x,y;
bool CFlg;
Ccount=0;
CFlg=false;
for(x=0;x<3;x++){
for(y=0;y<3;y++){
CcheckTbl[y][x] = Block[0][GameData[sy+y][sx+x]].Ptn; //左上から順番に仮テーブルに代入
}
}
for(x=0;x<3;x++){
for(y=0;y<3;y++){
if(CcheckTbl[y][x] == 1)
Ccount+=1; //仮テーブルの1の数を数える
}
}
if(Ccount>=9) CFlg = true;
}
ってかんじです・・・
C++始めたばかりでわかりませんw
どなたかご教授お願いできないでしょうか?