Python井字格游戏代码:简单易懂的实现

以下是一个简单的井字格游戏 Python 代码示例,适合初学者学习。

# 定义井字格游戏的棋盘
board = ['-', '-', '-',
         '-', '-', '-',
         '-', '-', '-']

# 定义当前玩家
current_player = 'X'

# 定义游戏是否结束的标志
game_over = False

# 定义游戏胜利的可能组合
win_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)]

# 打印游戏棋盘
def print_board():
    print(board[0] + ' | ' + board[1] + ' | ' + board[2])
    print(board[3] + ' | ' + board[4] + ' | ' + board[5])
    print(board[6] + ' | ' + board[7] + ' | ' + board[8])

# 玩家走一步
def play_game():
    global game_over
    while not game_over:
        print_board()
        handle_turn(current_player)
        check_if_game_over()
        flip_player()
    if current_player == 'X' or current_player == 'O':
        print(current_player + ' 赢了!')
    else:
        print('平局!')

# 处理玩家输入
def handle_turn(player):
    print(player + ' 的回合。')
    position = input('请选择一个位置(1-9):')
    valid = False
    while not valid:
        while position not in ['1', '2', '3', '4', '5', '6', '7', '8', '9']:
            position = input('请选择一个位置(1-9):')
        position = int(position) - 1
        if board[position] == '-':
            valid = True
        else:
            print('这个位置已经被占了,请选择另一个位置。')
    board[position] = player
    print_board()

# 检查游戏是否结束
def check_if_game_over():
    check_if_win()
    check_if_tie()

# 检查是否有玩家获胜
def check_if_win():
    global game_over
    for combination in win_combinations:
        pos1 = combination[0]
        pos2 = combination[1]
        pos3 = combination[2]
        if board[pos1] == board[pos2] == board[pos3] != '-':
            game_over = True
            return board[pos1]
    return None

# 检查是否为平局
def check_if_tie():
    global game_over
    if '-' not in board:
        game_over = True
        return True
    else:
        return False

# 切换玩家
def flip_player():
    global current_player
    if current_player == 'X':
        current_player = 'O'
    else:
        current_player = 'X'

# 开始游戏
play_game()

代码解释:

  1. 定义棋盘: 使用一个列表 board 来表示棋盘,每个元素代表一个位置,初始值为 - 表示空位置。
  2. 定义玩家: current_player 用于记录当前回合的玩家,初始值为 X
  3. 定义游戏结束标志: game_over 为布尔值,用于判断游戏是否结束。
  4. 定义胜利组合: win_combinations 用于记录所有可能获胜的三个位置组合。
  5. 打印棋盘函数: print_board() 用于打印当前棋盘状态。
  6. 游戏主函数: play_game() 包含游戏循环,直到 game_over 为 True。
  7. 处理玩家输入函数: handle_turn() 用于获取玩家输入,并更新棋盘。
  8. 检查游戏结束函数: check_if_game_over() 调用 check_if_win()check_if_tie() 来判断游戏是否结束。
  9. 检查获胜函数: check_if_win() 检查是否存在三个相同的符号在胜利组合中。
  10. 检查平局函数: check_if_tie() 检查棋盘是否已满。
  11. 切换玩家函数: flip_player() 用于切换当前玩家。

运行代码:

将代码保存为 Python 文件(例如 tictactoe.py),然后在命令行中运行 python tictactoe.py

学习建议:

  • 可以尝试修改代码,添加更多功能,例如:
    • 使用图形界面库来制作更直观的界面。
    • 增加难度级别,让电脑玩家更智能。
  • 仔细阅读代码注释,理解每个函数的功能。
  • 尝试自己编写代码,修改代码,并观察结果。
  • 可以在网上搜索更多关于 Python 游戏开发的教程和资源。

希望这个简单的井字格游戏代码示例能帮助你学习 Python 游戏开发。

Python井字格游戏代码:简单易懂的实现

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

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