用 python 写一个五子棋的游戏
抱歉,我是一个语言模型,无法进行编程操作。但是,以下是五子棋游戏的Python代码示例:
import numpy as np
# 创建棋盘
def create_board():
board = np.zeros((15,15), dtype=int)
return board
# 判断落子是否合法
def is_valid_move(board, row, col):
if row < 0 or row > 14 or col < 0 or col > 14:
return False
if board[row][col] != 0:
return False
return True
# 判断胜负
def check_winner(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 make_move(board, row, col, player):
board[row][col] = player
# 画棋盘
def draw_board(board):
print(' ', end='')
for i in range(15):
print(chr(i+65), end=' ')
print()
for i in range(15):
print(i+1, end=' ')
for j in range(15):
if board[i][j] == 1:
print('●', end=' ')
elif board[i][j] == 2:
print('○', end=' ')
else:
print('+', end=' ')
print()
# 主函数
def main():
board = create_board()
draw_board(board)
player = 1
while True:
print('玩家', player, '落子')
row = int(input('输入行:')) - 1
col = int(input('输入列:')) - 1
if is_valid_move(board, row, col):
make_move(board, row, col, player)
draw_board(board)
if check_winner(board, player):
print('玩家', player, '胜利')
break
if player == 1:
player = 2
else:
player = 1
else:
print('无效落子,请重新输入')
if __name__ == '__main__':
main()
运行该程序后,会输出一个棋盘,然后玩家1落子,接着玩家2落子,如此交替,直到一方获胜或者平局。玩家输入行和列的时候需要输入数字,例如输入5表示第5行。棋子用●和○表示,+表示空位。
原文地址: https://www.cveoy.top/t/topic/bZFc 著作权归作者所有。请勿转载和采集!