请用python实现人机交互五子棋游戏
下面是一个简单的示例代码,实现了一个基本的人机交互五子棋游戏:
import random
# 初始化棋盘
board = [[' ' for _ in range(15)] for _ in range(15)]
# 判断是否胜利
def check_win(board, row, col, player):
# 横向检查
for i in range(15-4):
if board[row][i:i+5] == [player]*5:
return True
# 纵向检查
for i in range(15-4):
if [board[j][col] for j in range(i,i+5)] == [player]*5:
return True
# 斜向检查
for i in range(15-4):
if [board[row+j][col+j] for j in range(i,i+5)] == [player]*5:
return True
if [board[row-j][col+j] for j in range(i,i+5)] == [player]*5:
return True
return False
# 人类玩家下棋
def human_player():
while True:
row = int(input("请输入行号(0-14):"))
col = int(input("请输入列号(0-14):"))
if board[row][col] == ' ':
board[row][col] = 'X'
break
else:
print("该位置已经有棋子了,请重新输入。")
# 机器人玩家下棋
def ai_player():
while True:
row = random.randint(0, 14)
col = random.randint(0, 14)
if board[row][col] == ' ':
board[row][col] = 'O'
break
# 游戏主循环
while True:
# 人类玩家下棋
print("人类玩家下棋:")
human_player()
# 检查人类玩家是否胜利
if check_win(board, row, col, 'X'):
print("人类玩家获胜!")
break
# 机器人玩家下棋
print("机器人玩家下棋:")
ai_player()
# 检查机器人玩家是否胜利
if check_win(board, row, col, 'O'):
print("机器人玩家获胜!")
break
这个示例代码实现了一个简单的人机交互五子棋游戏,玩家和机器人轮流下棋,判断是否胜利。其中,玩家下棋使用input函数获取用户输入的行号和列号,机器人下棋使用random库生成随机的行号和列号。通过check_win函数判断是否胜利,横向、纵向和斜向有相同的五个棋子即为胜利
原文地址: https://www.cveoy.top/t/topic/hOt0 著作权归作者所有。请勿转载和采集!