Python 井字棋游戏代码实现 - 完整指南
class TicTacToe:\n def init(self):\n self.board = [' ' for _ in range(9)] \n\n def print_board(self):\n print("-------------")\n for row in [self.board[i*3:(i+1)*3] for i in range(3)]: \n print("| " + " | ".join(row) + " |")\n print("-------------")\n\n @staticmethod\n def print_instructions():\n print("井字棋游戏")\n print("玩家1的标记: X")\n print("玩家2的标记: O")\n print("输入0-8选择一个位置进行下棋")\n print("-------------")\n\n\n def make_move(self, square, player):\n if self.board[square] == ' ':\n self.board[square] = player\n return True\n return False\n\n def is_winner(self, player):\n winning_rows = [[0, 1, 2], [3, 4, 5], [6, 7, 8],\n [0, 3, 6], [1, 4, 7], [2, 5, 8],\n [0, 4, 8], [2, 4, 6]]\n for row in winning_rows:\n if all(self.board[square] == player for square in row):\n return True\n return False\n\n def play(self):\n self.print_instructions()\n current_player = 'X'\n while True:\n self.print_board()\n square = input("轮到 '{}' 下棋,请输入位置: ".format(current_player))\n if square.isdigit():\n square = int(square)\n if 0 <= square < 9:\n if self.make_move(square, current_player):\n if self.is_winner(current_player):\n self.print_board()\n print(" '{}' 赢得了游戏!".format(current_player))\n break\n elif ' ' not in self.board:\n self.print_board()\n print("游戏结束,平局!")\n break\n else:\n current_player = 'O' if current_player == 'X' else 'X'\n else:\n print("该位置已经被占据,请重新选择!")\n else:\n print("无效的位置,请重新选择!")\n else:\n print("无效的输入,请重新输入!")\n\ngame = TicTacToe()\ngame.play()
原文地址: https://www.cveoy.top/t/topic/pMOy 著作权归作者所有。请勿转载和采集!