简单的python五子棋代码
时间: 2023-07-10 12:13:09 浏览: 99
以下是一个简单的Python五子棋代码,仅供参考:
```python
import numpy as np
# 初始化棋盘
def init_board():
board = np.zeros((15, 15))
return board
# 判断是否落子越界
def is_legal(x, y):
return x >= 0 and x < 15 and y >= 0 and y < 15
# 判断是否有五子连珠
def is_win(board, x, y):
# 判断横向是否有五子连珠
if (board[x] == board[x][y:y+5]).all():
return True
# 判断竖向是否有五子连珠
if (board[:,y] == board[x:x+5,y]).all():
return True
# 判断左上到右下是否有五子连珠
if (np.diag(board, y - x) == board[x][y]).all():
return True
# 判断右上到左下是否有五子连珠
if (np.diag(np.fliplr(board), 14 - y - x) == board[x][y]).all():
return True
return False
# 判断是否平局
def is_draw(board):
return (board == 0).sum() == 0
# 落子
def move(board, x, y, color):
if is_legal(x, y) and board[x][y] == 0:
board[x][y] = color
return True
return False
# 人类玩家
def human_player(board, color):
while True:
try:
x, y = map(int, input("请输入落子位置, 以逗号分隔: ").split(","))
except ValueError:
print("输入无效,请重新输入!")
continue
if move(board, x, y, color):
break
else:
print("无法在该位置落子,请重新输入!")
# AI 玩家
def ai_player(board, color):
pass
# 游戏主循环
def game_loop():
board = init_board()
color = 1
players = {1: human_player, -1: ai_player}
while True:
print(f"当前棋盘:\n{board}")
players[color](board, color)
if is_win(board, x, y):
print(f"玩家 {color} 获胜!")
break
elif is_draw(board):
print("平局!")
break
color = -color
if __name__ == "__main__":
game_loop()
```
这个代码实现了一个简单的五子棋游戏,其中包括了落子、判断胜负、判断平局、人类玩家和AI玩家等功能。需要注意的是,AI玩家的实现需要使用深度学习等相关技术,这个代码只是一个空壳。
阅读全文