1
ここに最初の投稿私は3D tic-tac-toe C++プログラムを作成しています。私のcheckWinメンバー関数が問題を引き起こしています。 if文が満たされても、テスト列と対角線がlayer0に対してうまく動作するときに、ループ用にネストされたテスト行が勝者を与えない理由が不思議です。おそらくおかげ3D配列とメンバー関数を使用して勝者を3Dティックタックトゥにチェックします
void TicTacToe::checkWin(void) {
char returnValue = ' ';
//test for X or O win
//test rows, does not work
for (int k=0; k<=2; k++){
for (int i=0; i<=2; i++){
if ((space[i][0][k] == space[i][1][k]) && (space[i][0][k] == space[i][2][k])){
returnValue = space[i][0][k];
}
}
}
int k=0; //test layer 0 only
//test columns
if ((space[0][0][k] == space[1][0][k]) && (space[0][0][k] == space[2][0][k]))
returnValue = space[0][0][k];
else if ((space[0][1][k] == space[1][1][k]) && (space[0][1][k] == space[2][1][k]))
returnValue = space[0][1][k];
else if ((space[0][2][k] == space[1][2][k]) && (space[0][2][k] == space[2][2][k]))
returnValue = space[0][2][k];
//test diagonals
else if ((space[0][0][k] == space[1][1][k]) && (space[0][0][k] == space[2][2][k]))
returnValue = space[0][0][k];
else if ((space[0][2][k] == space[1][1][k]) && (space[0][2][k] == space[2][0][k]))
returnValue = space[0][2][k];
if (returnValue == ' ') { //then test for cat
int i, j, k, catCheck=0;
for (i=0; i<=2; i++) {
for (j=0; j<=2; j++) {
for (k=0; k<=2; k++) {
if (space[i][j][k] == ' ')
catCheck++;
}
}
}
if (catCheck == 0)
returnValue = 'C';
}
winner = returnValue;
}
私はそれをcwに意味しませんでしたが、何でも。タッチスクリーン上の脂肪指。 –