import random

# 初始化游戏板
board = [' ' for _ in range(9)]

# 可供玩家进行下棋的位置
available_moves = [i for i in range(9)]

# 获胜的可能组合
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)]

# 打印游戏板
def print_board():
    for i in range(0, 9, 3):
        print(f'{board[i]} | {board[i+1]} | {board[i+2]}')
        if i < 6:
            print('---------')

# 检查是否有玩家获胜
def check_winner(player):
    for combo in winning_combinations:
        if all(board[i] == player for i in combo):
            return True
    return False

# 玩家进行下棋
def player_move():
    while True:
        try:
            move = int(input('请在0-8之间选择一个位置进行下棋:'))
            if move in available_moves:
                return move
            else:
                print('这个位置已经被占据,请选择其他位置。')
        except ValueError:
            print('请输入一个有效的数字。')

# AI进行下棋(随机选择可用位置)
def ai_move():
    move = random.choice(available_moves)
    return move

# 游戏主循环
def main():
    print('欢迎来到井字棋游戏!')
    print_board()
    player = 'X'
    ai = 'O'
    while True:
        if len(available_moves) == 0:
            print('游戏结束,平局!')
            break

        if player == 'X':
            move = player_move()
        else:
            move = ai_move()

        board[move] = player
        available_moves.remove(move)
        print_board()

        if check_winner(player):
            print(f'恭喜,{player}获胜!')
            break

        player = ai if player == 'X' else 'X'

# 运行游戏
if __name__ == '__main__':
    main()

这是一个使用 Python 编写的简单井字棋游戏,你可以在命令行界面中与计算机对战。游戏规则很简单:

  1. 玩家 'X' 和 玩家 'O' 轮流在 3x3 的棋盘上下棋。
  2. 首先在一行、一列或对角线上形成三个相同符号的玩家获胜。
  3. 如果棋盘已满且没有玩家获胜,则游戏平局。

这个代码示例展示了基本的 Python 编程概念,如列表、循环和函数。你可以根据自己的想法修改代码,例如改进 AI 的算法,使其更具挑战性,或者添加图形用户界面 (GUI) 使其更具吸引力。

Python井字棋游戏:与CPU对战

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

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