Что-то не так с моей функцией playerWin. Он продолжает говорить мне, что выиграл. Я чувствую, что я не поставил ни одного х на доске, чтобы выиграть. Что случилось с моей логикой? Это не домашнее задание. Я не программировал навсегда, и мой первый язык был Java. Я пытаюсь изучить C++ и выбрать tic tac toe, чтобы дать мне что-то делать.C++ Selection Statement true true
#include <iostream>
using namespace std;
int boardSize = 3;
char board[3][3] = {'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n' };
void printBoard() {
for (int i=0; i < boardSize; i++) {
for (int j=0; j < boardSize; j++) {
cout << board[i][j] << " ";
}
cout << endl;
}
}
// void playerMove() { };
bool playerWin() {
if ((board[0][0] == 'x') && (board[1][0] == 'x') &&
(board[2][0] == 'x') ||
(board[0][1] == 'x') && (board[1][1] == 'x') &&
(board[2][1] == 'x') ||
(board[0][2] == 'x') && (board[1][2] == 'x') &&
(board[2][2] == 'x') ||
(board[0][0] == 'x') && (board[0][1] == 'x') &&
(board[0][2] == 'x') ||
(board[1][0] == 'x') && (board[1][1] == 'x') &&
(board[1][2] == 'x') ||
(board[2][0] == 'x') && (board[2][1] == 'x') &&
(board[2][2] == 'x') ||
(board[0][0] == 'x') && (board[1][1] == 'x') &&
(board[2][2] == 'x') ||
(board[2][0] == 'x') && (board[1][1] == 'x') &&
(board[0][2] == 'x')) {
return true;
}
}
int main() {
// game loop
char play = 'y';
cout << "Welcome to Tic Tac Toe\n";
do {
if (playerWin()) {
cout << "Looks like you won!" << endl;
} else {
cout << "You didn't win!";
}
break;
// after game is over ask if want to play again here
// cout << "Would you like to play Tic Tac Toe? \n";
// cin >> play;
} while (play = 'y');
}
Возможный дубликат [Возвращаемое по умолчанию возвращаемое значение типа boolean type в C++] (http://stackoverflow.com/questions/7529432/default-return-value-of-a-boolean-type-return-function- in-c) –