/
VR763
/
TicTacToe
Обзор
Документация
Войти
/
VR763
/
TicTacToe
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Board.cpp
90 строк
2 KB
VR763
Create: Board.cpp, Board.h, Game.cpp, Game.h, HumanPlayer.cpp, HumanPlayer.h, main.cpp, Menu.cpp, Menu.h, Player.cpp, Player.h, PlayerFactory.cpp, PlayerFactory.h, RandomAIPlayer.cpp, RandomAIPlayer.h
14 июн 2026, 13:09
Верифицирован
14 июн 2026, 13:09
500fb19
Код
Авторство
О чём код?
#include "Board.h" Board::Board() { reset(); } void Board::display() const { std::cout << "\n 1 2 3\n"; for (int i = 0; i < 3; i++) { std::cout << i + 1 << " "; for (int j = 0; j < 3; j++) { std::cout << board[i][j]; if (j < 2) std::cout << " | "; } std::cout << "\n"; if (i < 2) { std::cout << " ---+---+---\n"; } } std::cout << "\n"; } bool Board::makeMove(int row, int col, char symbol) { if (row < 0 || row > 2 || col < 0 || col > 2) { return false; } if (board[row][col] != ' ') { return false; } board[row][col] = symbol; return true; } bool Board::isCellFree(int row, int col) const { if (row < 0 || row > 2 || col < 0 || col > 2) { return false; } return board[row][col] == ' '; } bool Board::checkWin(char symbol) const { for (int i = 0; i < 3; i++) { if (board[i][0] == symbol && board[i][1] == symbol && board[i][2] == symbol) { return true; } } for (int j = 0; j < 3; j++) { if (board[0][j] == symbol && board[1][j] == symbol && board[2][j] == symbol) { return true; } } if (board[0][0] == symbol && board[1][1] == symbol && board[2][2] == symbol) { return true; } if (board[0][2] == symbol && board[1][1] == symbol && board[2][0] == symbol) { return true; } return false; } bool Board::isDraw() const { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (board[i][j] == ' ') { return false; } } } return true; } std::vector<std::pair<int, int>> Board::getAvailableCells() const { std::vector<std::pair<int, int>> available; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (board[i][j] == ' ') { available.push_back({ i, j }); } } } return available; } void Board::reset() { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { board[i][j] = ' '; } } }