Python 井字棋游戏代码实现 - 详细教程
下面是一个详细的 Python 代码示例,实现了井字棋游戏。
# 初始化游戏板
board = [' '] * 9
players = ['X', 'O']
current_player = players[0]
# 打印游戏板
def print_board(board):
print(' {0} | {1} | {2} '.format(board[0], board[1], board[2]))
print('-----------')
print(' {0} | {1} | {2} '.format(board[3], board[4], board[5]))
print('-----------')
print(' {0} | {1} | {2} '.format(board[6], board[7], board[8]))
# 检查是否有玩家获胜
def check_win(board, player):
winning_combinations = (
[0, 1, 2], [3, 4, 5], [6, 7, 8], # 横向
[0, 3, 6], [1, 4, 7], [2, 5, 8], # 纵向
[0, 4, 8], [2, 4, 6] # 对角线
)
for combo in winning_combinations:
if board[combo[0]] == board[combo[1]] == board[combo[2]] == player:
return True
return False
# 检查是否平局
def check_draw(board):
return ' ' not in board
# 游戏循环
while True:
# 打印当前游戏板
print_board(board)
# 获取当前玩家的下棋位置
move = input('轮到玩家 '{0}' 下棋,请输入位置(1-9):'.format(current_player))
# 检查输入的位置是否合法
if not move.isdigit() or int(move) < 1 or int(move) > 9 or board[int(move)-1] != ' ':
print('输入的位置无效,请重新输入!')
continue
# 更新游戏板
board[int(move)-1] = current_player
# 检查是否有玩家获胜
if check_win(board, current_player):
print_board(board)
print('玩家 '{0}' 获胜!'.format(current_player))
break
# 检查是否平局
if check_draw(board):
print_board(board)
print('游戏结束,平局!')
break
# 切换玩家
current_player = players[1] if current_player == players[0] else players[0]
这段代码实现了一个简单的井字棋游戏,按顺序由两名玩家轮流下棋,首先输入的玩家使用 'X' 符号,接下来的玩家使用 'O' 符号。玩家可以通过输入位置(1-9)来选择下棋位置。游戏在有玩家获胜或者平局时结束并给出相应提示。游戏板使用一个长度为9的列表表示,其中空格表示未下棋的位置,'X' 和 'O' 分别表示两名玩家的棋子。
原文地址: http://www.cveoy.top/t/topic/5gT 著作权归作者所有。请勿转载和采集!