色々調べると、皆さん配列を使って
[0][0][0][0][0]
[0][1][2][1][0]
[0][0][1][3][0]
[0][0][0][0][0]
みたいな書き方をしていらっしゃいます。([0]は壁)そして同じ数字が並んだら消す~といった処理をしていくようなのですが・・・
ですが私は、
//while文の外で初期化処理
int Block[16]; //読み込んだ画像16分割
int MAP[12][12];//マップのサイズ
int Leng,Wid; //縦・横
int random; //乱数取得
for( Leng = 0; Leng <12 ; Leng++)
{
for( Wid = 0; Wid < 12; Wid++)
{
random =GetRand(12);
if(Leng == 0||Leng == 11||Wid == 0||Wid == 11)
{
MAP[Leng][Wid] = Block[7];
}
else
{
MAP[Leng][Wid] = Block[random];
}
}
}
//while文の中で描画
for( Leng = 0; Leng < 12; Leng++)
{
for( Wid = 0; Wid < 12; Wid++)
{
DrawGraph( Wid*32, Leng*32 , MAP[Leng][Wid], TRUE );
}
}
今後そこからBlock[n]の中に、対応するstateを入れて、そのstateをif文で判断して4つ以上なら消すように書けばいいのではないかと頭の中で考えているのですが、いかんせん頭の中に描いているだけで何もしていないので、このやり方が「書くのがめんどくさい」「見にくいプログラム」「そもそも動かない」など皆さんの意見をお聞かせ願いたいのです。
そもそも、パズルゲームと聞くと皆さん[0][0][1][2]・・・とかくのはやはり理由があるのでしょうか?それが引っ掛かって、制作が滞っているのです。
どなたかの回答をお待ちしております。