import numpy as np

# 创建一个棋盘
board = np.zeros((15, 15))

# 定义当前玩家和另一个玩家的标记
current_player = 1
other_player = 2

# 检查是否有五子连线
def check_win(player):
    # 检查水平方向
    for i in range(11):
        for j in range(15):
            if board[i:i+5, j].sum() == 5 * player:
                return True
    # 检查垂直方向
    for i in range(15):
        for j in range(11):
            if board[i, j:j+5].sum() == 5 * player:
                return True
    # 检查对角线
    for i in range(11):
        for j in range(11):
            if board[i:i+5, j:j+5].diagonal().sum() == 5 * player:
                return True
            if np.fliplr(board[i:i+5, j:j+5]).diagonal().sum() == 5 * player:
                return True
    return False

# 游戏循环
while True:
    print("当前棋盘:")
    print(board)
    print("当前玩家:", current_player)
    # 提示玩家输入行和列
    row = int(input("请输入行号:"))
    column = int(input("请输入列号:"))
    # 判断输入是否合法
    if row < 0 or row >= 15 or column < 0 or column >= 15 or board[row, column] != 0:
        print("无效的位置,请重新输入!")
        continue
    # 在棋盘上放置棋子
    board[row, column] = current_player
    # 检查是否有五子连线
    if check_win(current_player):
        print("玩家", current_player, "获胜!")
        break
    # 切换玩家
    current_player, other_player = other_player, current_player

以上代码使用numpy创建了一个15x15的空棋盘,通过输入行和列的方式让两个玩家交替在棋盘上放置自己的棋子。每次放置后,会检查是否有五子连线,如果有则宣布当前玩家获胜。游戏循环会一直进行,直到有玩家获胜为止。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐