0
現在、GomokuゲームではMFCを使用しています。現在、対角線の勝利アルゴリズムに取り組んでいます。私の水平と垂直の仕事は大丈夫です。誰かが私の論理が間違っているところで明るさを少しでも助けてくれることを願っています。コードは次のとおりです。ゴモク対角勝利条件
bool CMainFrame::isWinner(int player){
for (int row = 0; row < data.size(); row++) {
for (int col = 0; col < data.size(); col++) {
if (data[row][col].color == player && data[row + 1][col + 1].color == player && data[row + 2][col + 2].color == player && data[row + 3][col + 3].color == player && data[row + 4][col + 4].color == player) {
CheckForGameOver(player); //function that simply shows message box of winning piece
return true;
}
}
}
}
左上隅に接続されている対角線でのみ動作します。かなりプログラミングに新しいので、どんな助けも大いに評価されるでしょう。
ループでは「15」のような数字を使用しないでください。意味のある名前付き定数を使用するか、データのサイズから値を派生させてください。 Goボードは19 x 19ですので、あなたのテストは限界にとどまっていません。応答のために – stark
ありがとう。私のボードは15 X 15です。ああ、私はちょうど私のdata.size()を編集しました。私は自分のコードで使っていますが、それでも何も変えていないようです。 – Elijah
あなたは間違いなく外出しています。 – stark