char gameBoard[3][3]; // Игровое поле char currentPlayer; // Текущий игрок (X или O)
// Инициализация игрового поля void initBoard() { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { gameBoard[i][j] = '-'; } } }
// Отрисовка игрового поля void drawBoard() { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { cout << gameBoard[i][j] << " "; } cout << endl; } }
// Проверка наличия победителя bool checkWin() { // Проверка по горизонтали for (int i = 0; i < 3; i++) { if (gameBoard[i][0] != '-' && gameBoard[i][0] == gameBoard[i][1] && gameBoard[i][0] == gameBoard[i][2]) { return true; } } // Проверка по вертикали for (int i = 0; i < 3; i++) { if (gameBoard[0][i] != '-' && gameBoard[0][i] == gameBoard[1][i] && gameBoard[0][i] == gameBoard[2][i]) { return true; } } // Проверка по диагоналям if (gameBoard[0][0] != '-' && gameBoard[0][0] == gameBoard[1][1] && gameBoard[0][0] == gameBoard[2][2]) { return true; } if (gameBoard[2][0] != '-' && gameBoard[2][0] == gameBoard[1][1] && gameBoard[2][0] == gameBoard[0][2]) { return true; } return false; }
// Ход игрока void makeMove() { int row, col; cout << "Ход игрока " << currentPlayer << endl; cout << "Введите номер строки (от 1 до 3): "; cin >> row; cout << "Введите номер столбца (от 1 до 3): "; cin >> col; row--; col--;
// Проверка корректности введенных координат if (row < 0 || row >= 3 || col < 0 || col >= 3 || gameBoard[row][col] != '-') { cout << "Некорректный ход. Попробуйте еще раз." << endl; makeMove(); return; }