1#ifndef MEMORYTICTACTOE_H
2#define MEMORYTICTACTOE_H
13 char hidden_board[3][3];
16 for (
int i = 0; i < 3; i++) {
17 for (
int j = 0; j < 3; j++) {
18 board[i][j] = hidden_board[i][j];
25 for (
int i = 0; i < 3; i++) {
26 for (
int j = 0; j < 3; j++) {
28 hidden_board[i][j] =
' ';
34 int x = move->
get_x();
35 int y = move->
get_y();
38 if (x < 0 || x >= 3 || y < 0 || y >= 3) {
39 cout <<
"Invalid position! Use 0-2.\n";
43 if (hidden_board[x][y] !=
' ') {
44 cout <<
"Cell already occupied!\n";
48 hidden_board[x][y] = symbol;
62 for (
int i = 0; i < 3; i++) {
63 if (hidden_board[i][0] == symbol && hidden_board[i][1] == symbol && hidden_board[i][2] == symbol)
68 for (
int j = 0; j < 3; j++) {
69 if (hidden_board[0][j] == symbol && hidden_board[1][j] == symbol && hidden_board[2][j] == symbol)
74 if (hidden_board[0][0] == symbol && hidden_board[1][1] == symbol && hidden_board[2][2] == symbol)
76 if (hidden_board[0][2] == symbol && hidden_board[1][1] == symbol && hidden_board[2][0] == symbol)
88 for (
int i = 0; i < 3; i++) {
89 for (
int j = 0; j < 3; j++) {
90 if (hidden_board[i][j] ==
' ') {
130 <<
"), enter your move (row and column 0-2): ";
137 cout << player->
get_name() <<
" chooses position (" << x <<
", " << y <<
")\n";
PlayerType
Represents the type of player in the game.
Definition BoardGame_Classes.h:24
@ HUMAN
A human player.
Definition BoardGame_Classes.h:25
@ COMPUTER
A computer-controlled player.
Definition BoardGame_Classes.h:26
int n_moves
Definition BoardGame_Classes.h:45
Board(int rows, int columns)
Definition BoardGame_Classes.h:51
vector< vector< char > > board
Definition BoardGame_Classes.h:44
MemoryTicTacToe_Player(string name, char symbol)
Definition MemoryTicTacToe.h:110
MemoryTicTacToe_RandomPlayer(char symbol)
Definition MemoryTicTacToe.h:116
MemoryTicTacToe_UI()
Definition MemoryTicTacToe.h:124
Move< char > * get_move(Player< char > *player) override
Ask the user (or AI) to make a move.
Definition MemoryTicTacToe.h:126
bool game_is_over(Player< char > *player) override
Check if the game is over.
Definition MemoryTicTacToe.h:98
MemoryTicTacToeBoard()
Definition MemoryTicTacToe.h:24
bool update_board(Move< char > *move) override
Update the board with a new move.
Definition MemoryTicTacToe.h:33
bool is_draw(Player< char > *player) override
Check if the game ended in a draw.
Definition MemoryTicTacToe.h:86
bool is_win(Player< char > *player) override
Check if a player has won.
Definition MemoryTicTacToe.h:57
bool is_lose(Player< char > *player) override
Check if a player has lost.
Definition MemoryTicTacToe.h:82
Represents a single move in a board game.
Definition BoardGame_Classes.h:100
T get_symbol() const
Get the move symbol.
Definition BoardGame_Classes.h:116
int get_y() const
Get column index.
Definition BoardGame_Classes.h:113
int get_x() const
Get row index.
Definition BoardGame_Classes.h:110
Base template for all players (human or AI).
Definition BoardGame_Classes.h:126
char symbol
Definition BoardGame_Classes.h:130
PlayerType get_type() const
Get player type (e.g., 'H' or 'C').
Definition BoardGame_Classes.h:147
Player(string n, char s, PlayerType t)
Definition BoardGame_Classes.h:137
string get_name() const
Get the player's name.
Definition BoardGame_Classes.h:144
string name
Definition BoardGame_Classes.h:128
T get_symbol() const
Get the player's symbol.
Definition BoardGame_Classes.h:150
UI(string message, int cell_display_width)
Definition BoardGame_Classes.h:196