下面是一个详细的 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 著作权归作者所有。请勿转载和采集!

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