请帮我用python实现一段五子棋代码
以下是一个简单的五子棋代码实现,使用Python编写:
import numpy as np
# 创建棋盘
def create_board():
board = np.zeros((15, 15))
return board
# 判断落子是否合法
def is_valid_move(board, row, col):
if board[row][col] == 0:
return True
else:
return False
# 落子
def place_move(board, row, col, player):
board[row][col] = player
# 判断是否有五子连珠
def is_win(board, player):
# 判断行
for i in range(15):
for j in range(11):
if board[i][j] == player and board[i][j+1] == player and board[i][j+2] == player and board[i][j+3] == player and board[i][j+4] == player:
return True
# 判断列
for i in range(11):
for j in range(15):
if board[i][j] == player and board[i+1][j] == player and board[i+2][j] == player and board[i+3][j] == player and board[i+4][j] == player:
return True
# 判断对角线
for i in range(11):
for j in range(11):
if board[i][j] == player and board[i+1][j+1] == player and board[i+2][j+2] == player and board[i+3][j+3] == player and board[i+4][j+4] == player:
return True
# 判断反对角线
for i in range(11):
for j in range(4, 15):
if board[i][j] == player and board[i+1][j-1] == player and board[i+2][j-2] == player and board[i+3][j-3] == player and board[i+4][j-4] == player:
return True
return False
# 游戏主函数
def play_game():
board = create_board()
print(board)
player = 1
game_over = False
while not game_over:
row = int(input("请输入落子行数:"))
col = int(input("请输入落子列数:"))
if is_valid_move(board, row, col):
place_move(board, row, col, player)
if is_win(board, player):
print("玩家", player, "获胜!")
game_over = True
player = 3 - player
print(board)
else:
print("落子不合法,请重新输入!")
play_game()
在这个代码中,我们使用numpy库创建了一个15x15的棋盘,使用0表示空位,1表示玩家1的棋子,2表示玩家2的棋子。游戏开始时,轮到玩家1先落子,玩家输入所选落子的行数和列数,程序判断是否合法,如果合法,则将该位置改为玩家的棋子,并判断是否有五子连珠,如果有,则宣布该玩家获胜。如果没有获胜,则轮到另一个玩家落子,直到有一方获胜或者棋盘已经下满。
原文地址: https://www.cveoy.top/t/topic/caa4 著作权归作者所有。请勿转载和采集!