以下是一个简单的五子棋代码,使用 Python 语言编写:

import numpy as np

# 定义棋盘大小
BOARD_SIZE = 15

# 定义黑白棋子的常量
EMPTY = 0
WHITE = 1
BLACK = 2

class Game:
    def __init__(self):
        # 初始化棋盘
        self.board = np.zeros((BOARD_SIZE, BOARD_SIZE))
        # 初始化当前落子方
        self.current_player = BLACK

    def play(self, x, y):
        # 落子
        self.board[x][y] = self.current_player
        # 判断是否胜利
        if self.is_win(x, y):
            print('Player', self.current_player, 'wins!')
            return
        # 切换落子方
        self.current_player = BLACK if self.current_player == WHITE else WHITE

    def is_win(self, x, y):
        # 判断横向是否有五子相连
        if (self.board[x][y] == self.board[x-1][y] == self.board[x-2][y] == self.board[x-3][y] == self.board[x-4][y] == self.current_player) or \
           (self.board[x][y] == self.board[x+1][y] == self.board[x+2][y] == self.board[x+3][y] == self.board[x+4][y] == self.current_player) or \
           (self.board[x][y] == self.board[x-1][y] == self.board[x-2][y] == self.board[x-3][y] == self.board[x+1][y] == self.current_player) or \
           (self.board[x][y] == self.board[x+1][y] == self.board[x+2][y] == self.board[x+3][y] == self.board[x-1][y] == self.current_player):
            return True
        # 判断纵向是否有五子相连
        if (self.board[x][y] == self.board[x][y-1] == self.board[x][y-2] == self.board[x][y-3] == self.board[x][y-4] == self.current_player) or \
           (self.board[x][y] == self.board[x][y+1] == self.board[x][y+2] == self.board[x][y+3] == self.board[x][y+4] == self.current_player) or \
           (self.board[x][y] == self.board[x][y-1] == self.board[x][y-2] == self.board[x][y-3] == self.board[x][y+1] == self.current_player) or \
           (self.board[x][y] == self.board[x][y+1] == self.board[x][y+2] == self.board[x][y+3] == self.board[x][y-1] == self.current_player):
            return True
        # 判断斜向是否有五子相连
        if (self.board[x][y] == self.board[x-1][y-1] == self.board[x-2][y-2] == self.board[x-3][y-3] == self.board[x-4][y-4] == self.current_player) or \
           (self.board[x][y] == self.board[x+1][y+1] == self.board[x+2][y+2] == self.board[x+3][y+3] == self.board[x+4][y+4] == self.current_player) or \
           (self.board[x][y] == self.board[x-1][y-1] == self.board[x-2][y-2] == self.board[x-3][y-3] == self.board[x+1][y+1] == self.current_player) or \
           (self.board[x][y] == self.board[x+1][y+1] == self.board[x+2][y+2] == self.board[x+3][y+3] == self.board[x-1][y-1] == self.current_player) or \
           (self.board[x][y] == self.board[x-1][y+1] == self.board[x-2][y+2] == self.board[x-3][y+3] == self.board[x-4][y+4] == self.current_player) or \
           (self.board[x][y] == self.board[x+1][y-1] == self.board[x+2][y-2] == self.board[x+3][y-3] == self.board[x+4][y-4] == self.current_player) or \
           (self.board[x][y] == self.board[x-1][y+1] == self.board[x-2][y+2] == self.board[x-3][y+3] == self.board[x+1][y-1] == self.current_player) or \
           (self.board[x][y] == self.board[x+1][y-1] == self.board[x+2][y-2] == self.board[x+3][y-3] == self.board[x-1][y+1] == self.current_player):
            return True
        return False

# 测试代码
game = Game()
game.play(7, 7) # 黑方落子
game.play(8, 8) # 白方落子
game.play(6, 6) # 黑方落子
game.play(9, 9) # 白方落子
game.play(5, 5) # 黑方落子
game.play(10, 10) # 白方落子
game.play(4, 4) # 黑方落子
game.play(11, 11) # 白方落子
game.play(3, 3) # 黑方落子
game.play(12, 12) # 白方落子
五子棋游戏代码:Python实现

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

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