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/nqpQ 著作权归作者所有。请勿转载和采集!