Python五子棋游戏代码示例

想学习如何用Python编写一个简单的五子棋游戏吗?这篇文章提供了一个详细的代码示例,非常适合初学者入门游戏开发。

代码实现

# 导入必要的库
import numpy as np

# 定义棋盘尺寸
BOARD_SIZE = 15

# 创建棋盘,初始值为0表示空位
board = np.zeros((BOARD_SIZE, BOARD_SIZE), dtype=int)

# 定义当前玩家,1表示先手,-1表示后手
current_player = 1

# 检查是否有玩家获胜
def check_win(player):
    # 检查水平方向
    for i in range(BOARD_SIZE):
        for j in range(BOARD_SIZE-4):
            if np.all(board[i, j:j+5] == player):
                return True

    # 检查垂直方向
    for i in range(BOARD_SIZE-4):
        for j in range(BOARD_SIZE):
            if np.all(board[i:i+5, j] == player):
                return True

    # 检查主对角线方向
    for i in range(BOARD_SIZE-4):
        for j in range(BOARD_SIZE-4):
            if np.all(board[i:i+5, j:j+5].diagonal() == player):
                return True

    # 检查副对角线方向
    for i in range(BOARD_SIZE-4):
        for j in range(BOARD_SIZE-1, 3, -1):
            if np.all(board[i:i+5, j-4:j+1].diagonal() == player):
                return True

    return False

# 打印棋盘
def print_board():
    for i in range(BOARD_SIZE):
        for j in range(BOARD_SIZE):
            if board[i, j] == 1:
                print('X', end=' ')
            elif board[i, j] == -1:
                print('O', end=' ')
            else:
                print('_', end=' ')
        print()

# 游戏主循环
while True:
    print_board()

    # 获取玩家下棋位置
    row = int(input('请输入要下棋的行号(0-14):'))
    col = int(input('请输入要下棋的列号(0-14):'))

    # 检查位置是否合法
    if row < 0 or row >= BOARD_SIZE or col < 0 or col >= BOARD_SIZE or board[row, col] != 0:
        print('输入无效,请重新输入!')
        continue

    # 在棋盘上下子
    board[row, col] = current_player

    # 检查游戏是否结束
    if check_win(current_player):
        print_board()
        print('玩家', current_player, '获胜!')
        break

    # 切换到另一个玩家
    current_player = -current_player

print('游戏结束!')

代码解释

  1. 首先,我们导入numpy库用于处理数组,并定义棋盘大小BOARD_SIZE为15。
  2. 使用np.zeros创建一个二维数组表示棋盘,初始值均为0,表示空位。
  3. current_player变量用于记录当前玩家,1表示先手,-1表示后手。
  4. check_win函数用于判断当前玩家是否获胜,分别检查水平、垂直、主对角线和副对角线四个方向是否有五子连线。
  5. print_board函数用于打印当前棋盘状态,使用'X'表示先手棋子,'O'表示后手棋子,'_'表示空位。
  6. 在游戏主循环中,程序会不断循环以下步骤:
    • 打印棋盘
    • 获取玩家输入的行号和列号
    • 检查输入是否合法
    • 在棋盘上下子
    • 判断是否获胜
    • 切换玩家
  7. 当有玩家获胜或棋盘下满时,游戏结束。

总结

这个简单的五子棋游戏代码示例展示了如何使用Python编写基本的游戏逻辑。你可以根据自己的想法扩展这个游戏,例如添加人机对战功能、图形界面等。希望这篇文章能帮助你入门游戏开发!

Python五子棋游戏代码示例 - 附详细注释

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

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