Untitled
unknown
c_cpp
2 years ago
2.8 kB
2
Indexable
#include <iostream> using namespace std; void initializeBoard(char** board, int size) { for (int row = 0; row < size; ++row) { for (int col = 0; col < size; ++col) { board[row][col] = '-'; } } } void printBoard(char** board, int size) { for (int row = 0; row < size; ++row) { for (int col = 0; col < size; ++col) { cout << board[row][col] << " "; } cout << endl; } } bool checkWin(char** board, int size, char player) { int row, col; // Check rows for (row = 0; row < size; ++row) { for (col = 0; col < size; ++col) { if (board[row][col] != player) { break; } } if (col == size) { return true; } } // Check columns for (col = 0; col < size; ++col) { for (row = 0; row < size; ++row) { if (board[row][col] != player) { break; } } if (row == size) { return true; } } // Check main diagonal for (row = 0; row < size; ++row) { if (board[row][row] != player) { break; } } if (row == size) { return true; } // Check anti-diagonal for (row = 0; row < size; ++row) { if (board[row][size - row - 1] != player) { break; } } if (row == size) { return true; } return false; } int main() { int size; cout << "Enter the size of the Tic-Tac-Toe board: "; cin >> size; char** board = new char*[size]; for (int i = 0; i < size; ++i) { board[i] = new char[size]; } initializeBoard(board, size); int totalMoves = size * size; bool gameWon = false; char player; for (int move = 0; move < totalMoves; ++move) { player = (move % 2 == 0) ? 'X' : 'O'; int row, col; printBoard(board, size); cout << "Player " << player << ", enter your move (row and column): "; cin >> row >> col; if (row < 1 || row > size || col < 1 || col > size || board[row - 1][col - 1] != '-') { cout << "Invalid move, try again." << endl; --move; continue; } board[row - 1][col - 1] = player; if (checkWin(board, size, player)) { gameWon = true; break; } } printBoard(board, size); if (gameWon) { cout << "Player " << player << " wins!" << endl; } else { cout << "It's a draw!" << endl; } for (int i = 0; i < size; ++i) { delete[] board[i]; } delete[] board; return 0; }
Editor is loading...