使用Python实现井字棋游戏
发布时间:2023-12-04 13:31:06
下面是一个使用Python实现的井字棋游戏的例子:
# 定义井字棋游戏的类
class TicTacToe:
# 初始化游戏棋盘
def __init__(self):
self.board = [[' ' for _ in range(3)] for _ in range(3)]
self.current_player = 'X'
# 打印当前游戏棋盘
def print_board(self):
for row in self.board:
print('|'.join(row))
# 判断游戏是否结束
def is_game_over(self):
# 判断行是否有连续3个相同的棋子
for row in self.board:
if row[0] == row[1] == row[2] != ' ':
return True
# 判断列是否有连续3个相同的棋子
for col in range(3):
if self.board[0][col] == self.board[1][col] == self.board[2][col] != ' ':
return True
# 判断对角线是否有连续3个相同的棋子
if self.board[0][0] == self.board[1][1] == self.board[2][2] != ' ':
return True
if self.board[0][2] == self.board[1][1] == self.board[2][0] != ' ':
return True
# 判断是否所有格子都被填满
for row in self.board:
if ' ' in row:
return False
return True
# 下棋
def make_move(self, row, col):
if self.board[row][col] == ' ':
self.board[row][col] = self.current_player
self.current_player = 'O' if self.current_player == 'X' else 'X'
else:
print('此处已经有棋子,请重新选择位置!')
# 运行游戏
def play_game(self):
while not self.is_game_over():
self.print_board()
move = input('请输入你的下棋位置(格式:行 列,范围 0-2):')
row, col = map(int, move.split())
self.make_move(row, col)
self.print_board()
print('游戏结束!')
# 创建井字棋游戏实例并运行游戏
game = TicTacToe()
game.play_game()
在上面的例子中,我们首先定义了一个TicTacToe类,表示井字棋游戏。在初始化方法__init__中,我们创建了一个3x3的空棋盘,并将当前玩家设置为'X'。
print_board方法用于打印当前的棋盘状态。
is_game_over方法用于判断游戏是否结束。我们首先判断每一行、每一列和两个对角线是否有连续三个相同的棋子,如果有,则游戏结束。然后判断棋盘是否已经被填满,如果是,则游戏结束。
make_move方法用于下棋。我们首先检查目标位置是否为空,如果为空,则将当前玩家的棋子放在该位置,并更新当前玩家。
play_game方法用于运行游戏。我们首先进入一个循环,直到游戏结束。在每一轮中,先打印当前的棋盘状态,然后获取玩家输入的下棋位置,并调用make_move方法进行下棋。最后,打印最终的棋盘状态和游戏结束的提示信息。
最后,我们创建了一个TicTacToe实例并调用play_game方法运行游戏。
运行以上代码,你将可以在命令行中玩井字棋游戏。
