写一个五子棋游戏Python代码
时间: 2023-11-21 13:16:11 浏览: 52
好的,下面是一个简单的五子棋游戏Python代码:
```python
import numpy as np
# 定义棋盘大小
BOARD_SIZE = 15
# 定义棋子类型
EMPTY = 0
BLACK = 1
WHITE = 2
# 初始化棋盘
board = np.zeros((BOARD_SIZE, BOARD_SIZE), dtype=int)
# 定义当前下棋方
current_player = BLACK
# 判断是否胜利
def is_win(player):
# 判断横向是否有五子相连
for i in range(BOARD_SIZE):
for j in range(BOARD_SIZE-4):
if np.all(board[i, j:j+5] == player):
return True
# 判断纵向是否有五子相连
for i in range(BOARD_SIZE-4):
for j in range(BOARD_SIZE):
if np.all(board[i:i+5, j] == player):
return True
# 判断正斜线是否有五子相连
for i in range(BOARD_SIZE-4):
for j in range(BOARD_SIZE-4):
if np.all(board[i:i+5, j:j+5].diagonal() == player):
return True
# 判断反斜线是否有五子相连
for i in range(4, BOARD_SIZE):
for j in range(BOARD_SIZE-4):
if np.all(board[i-4:i+1, j:j+5].diagonal()[::-1] == player):
return True
return False
# 下棋
def play(x, y):
global current_player
board[x][y] = current_player
if is_win(current_player):
print("Player %d wins!" % current_player)
return
current_player = WHITE if current_player == BLACK else BLACK
# 打印棋盘
def print_board():
print(" ", end="")
for i in range(BOARD_SIZE):
print(i, end="")
print("")
for i in range(BOARD_SIZE):
print(i, end="")
for j in range(BOARD_SIZE):
if board[i][j] == EMPTY:
print("-", end="")
elif board[i][j] == BLACK:
print("X", end="")
else:
print("O", end="")
print("")
# 开始游戏
while True:
print_board()
x, y = input("Player %d, please input your coordinate(x,y):" % current_player).split(",")
x, y = int(x), int(y)
play(x, y)
```
这是一个简单的五子棋游戏代码,可以在控制台中运行。玩家可以输入坐标来下棋,程序会自动判断胜负。请注意,这个代码还有很多可以优化的地方。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)