Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
// game.cpp
#include "game.hpp"
TicTacToe::TicTacToe() {
board = std::vector(9, ' ');
currentPlayer = 'X';
}
void TicTacToe::displayBoard() {
std::cout << "\n";
for (int i = 0; i < 9; i++) {
std::cout << " " << (board[i] == ' ' ? std::to_string(i + 1) : std::string(1, board[i])) << " ";
if (i % 3 != 2) std::cout << "|";
if (i % 3 == 2 && i != 8) std::cout << "\n---+---+---\n";
}
std::cout << "\n\n";
}
bool TicTacToe::makeMove(int position) {
if (position < 1 || position > 9 || board[position - 1] != ' ') {
return false;
}
board[position - 1] = currentPlayer;
return true;
}
bool TicTacToe::checkWin() {
const int wins[8][3] = {
{0,1,2}, {3,4,5}, {6,7,8}, // rows
{0,3,6}, {1,4,7}, {2,5,8}, // columns
{0,4,8}, {2,4,6} // diagonals
};
}
bool TicTacToe::checkDraw() {
for (char c : board) {
if (c == ' ') return false;
}
return true;
}
void TicTacToe::switchPlayer() {
currentPlayer = (currentPlayer == 'X') ? 'O' : 'X';
}
char TicTacToe::getCurrentPlayer() {
return currentPlayer;
}