"#include \n#include \n\nusing namespace std;\n\nclass TicTacToe {\nprivate:\n vector<vector> board;\n char currentPlayer;\n\npublic:\n TicTacToe() {\n board = vector<vector>(3, vector(3, '-'));\n currentPlayer = 'X';\n }\n\n void printBoard() {\n cout << "------" << endl;\n for (int i = 0; i < 3; i++) {\n for (int j = 0; j < 3; j++) {\n cout << board[i][j] << " " ;\n }\n cout << endl;\n }\n cout << "------" << endl;\n }\n\n bool isBoardFull() {\n for (int i = 0; i < 3; i++) {\n for (int j = 0; j < 3; j++) {\n if (board[i][j] == '-') {\n return false;\n }\n }\n }\n return true;\n }\n\n bool makeMove(int row, int col) {\n if (row < 0 || row >= 3 || col < 0 || col >= 3 || board[row][col] != '-') {\n return false;\n }\n board[row][col] = currentPlayer;\n return true;\n }\n\n bool checkWin() {\n // 检查行\n for (int i = 0; i < 3; i++) {\n if (board[i][0] != '-' && board[i][0] == board[i][1] && board[i][1] == board[i][2]) {\n return true;\n }\n }\n // 检查列\n for (int j = 0; j < 3; j++) {\n if (board[0][j] != '-' && board[0][j] == board[1][j] && board[1][j] == board[2][j]) {\n return true;\n }\n }\n // 检查对角线\n if (board[0][0] != '-' && board[0][0] == board[1][1] && board[1][1] == board[2][2]) {\n return true;\n }\n if (board[0][2] != '-' && board[0][2] == board[1][1] && board[1][1] == board[2][0]) {\n return true;\n }\n return false;\n }\n\n void play() {\n while (!isBoardFull()) {\n printBoard();\n int row, col;\n cout << "Player " << currentPlayer << " make your move (row col): " ;\n cin >> row >> col;\n if (makeMove(row, col)) {\n if (checkWin()) {\n printBoard();\n cout << "Player " << currentPlayer << " wins!" << endl;\n return;\n }\n currentPlayer = (currentPlayer == 'X') ? 'O' : 'X';\n } else {\n cout << "Invalid move. Try again." << endl;\n }\n }\n printBoard();\n cout << "It's a tie!" << endl;\n }\n};\n\nint main() {\n TicTacToe game;\n game.play();\n return 0;\n}\n"代码中,我们创建了一个 TicTacToe 类,包含了棋盘状态、当前玩家以及游戏的各种操作方法。使用 play() 方法开始游戏,游戏会循环进行直到棋盘满或有玩家获胜。在每个回合中,玩家通过输入行和列来进行移动,如果移动有效,则切换玩家并检查是否有玩家获胜。最后,打印出游戏结果。\n\n这个示例代码只是一个简单的实现,你可以根据需求进行修改和扩展。"


原文地址: https://www.cveoy.top/t/topic/pI5y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录