5目並べを作っております
Posted: 2010年4月21日(水) 08:20
DXライブラリで5目並べを作っており判定以外の実装は出来ました。
しかし判定について検討がつかなく質問させて頂きました。
Mapという二次元配列に白なら1、黒なら2というように入っております。
この値を見てどっちが勝ったかのWinF(int型)判定をしたいです。
動作は特に問題ないようなのですがソースはこんな感じで大丈夫なのでしょうか?
汚いソースで申し訳ないのですがアドバイスを頂けないでしょうか?
しかし判定について検討がつかなく質問させて頂きました。
Mapという二次元配列に白なら1、黒なら2というように入っております。
この値を見てどっちが勝ったかのWinF(int型)判定をしたいです。
動作は特に問題ないようなのですがソースはこんな感じで大丈夫なのでしょうか?
汚いソースで申し訳ないのですがアドバイスを頂けないでしょうか?
一部抜粋 #define CEL_W 18 #define CEL_H 18 int Map[CEL_H][CEL_W]; bool Check = false; for(int i=0; i<CEL_H; i++){ for(int j=0; j<CEL_W; j++){ for(int Num=1; Num<PlayCount+1; Num++){ // 横 if(j < CEL_W-3){ if(Map[j] == Num && Map[j+1] == Num && Map[j+2] == Num && Map[j+3] == Num ) Check = true; } // 縦 if(i < CEL_H-3){ if(Map[j] == Num && Map[i+1][j] == Num && Map[i+2][j] == Num && Map[i+3][j] == Num ) Check = true; } // 斜め右下 if(i < CEL_H-3 && j < CEL_W-3){ if(Map[j] == Num && Map[i+1][j+1] == Num && Map[i+2][j+2] == Num && Map[i+3][j+3] == Num ) Check = true; } // 斜め右上 if(i > 3 && j < CEL_W-3){ if(Map[j] == Num && Map[i-1][j+1] == Num && Map[i-2][j+2] == Num && Map[i-3][j+3] == Num ) Check = true; } if(Check){ WinF = Num; } Check = false; } } }