写一个三子连珠代码
以下是一个Python代码实现三子连珠游戏:
# 定义棋盘大小
BOARD_SIZE = 15
# 定义棋盘
board = [[0] * BOARD_SIZE for _ in range(BOARD_SIZE)]
# 定义棋子颜色
BLACK = 1
WHITE = 2
# 定义当前轮到哪个玩家下棋
current_player = BLACK
# 判断一个位置是否在棋盘内
def in_board(x, y):
return x >= 0 and x < BOARD_SIZE and y >= 0 and y < BOARD_SIZE
# 判断一个玩家在某个位置下棋是否能够连成三子
def is_win(player, x, y):
# 定义四个方向,每个方向都有两个坐标偏移量
directions = [[[0, 1], [0, -1]], [[1, 0], [-1, 0]], [[1, 1], [-1, -1]], [[1, -1], [-1, 1]]]
for direction in directions:
count = 1
for offset in direction:
dx, dy = offset
nx, ny = x + dx, y + dy
while in_board(nx, ny) and board[nx][ny] == player:
count += 1
nx += dx
ny += dy
if count >= 3:
return True
return False
# 打印棋盘
def print_board():
for row in board:
print(' '.join(str(x) for x in row))
# 开始游戏
while True:
# 打印棋盘和当前玩家提示
print_board()
if current_player == BLACK:
print("现在轮到黑方下棋")
else:
print("现在轮到白方下棋")
# 等待玩家输入坐标
x, y = map(int, input("请输入坐标(以空格分隔):").split())
# 检查当前位置是否已经有棋子
if board[x][y] != 0:
print("该位置已经有棋子,请重新输入")
continue
# 在当前位置放置棋子
board[x][y] = current_player
# 检查是否有玩家连成三子
if is_win(current_player, x, y):
print_board()
if current_player == BLACK:
print("黑方连成三子,游戏结束")
else:
print("白方连成三子,游戏结束")
break
# 切换到下一个玩家
current_player = BLACK if current_player == WHITE else WHITE
运行该代码,即可进行三子连珠游戏。玩家依次输入要下棋的坐标,程序会自动判断棋子是否已经下在了合法位置,并且会自动判断是否有玩家连成了三子。如果有玩家连成了三子,游戏就结束了。
原文地址: https://www.cveoy.top/t/topic/b75L 著作权归作者所有。请勿转载和采集!