写一个五子棋游戏的demo
时间: 2024-05-04 08:17:30 浏览: 19
好的,以下是一个简单的五子棋游戏demo的代码:
```python
import numpy as np
# 初始化棋盘
board = np.zeros((15, 15))
# 定义函数:落子
def move(color, x, y):
if board[x][y] == 0:
board[x][y] = color
return True
else:
return False
# 定义函数:判断胜负
def check_win(color, x, y):
# 判断横向是否有五子相连
if np.sum(board[x, y:y+5] == color) == 5:
return True
# 判断纵向是否有五子相连
if np.sum(board[x:x+5, y] == color) == 5:
return True
# 判断左上到右下是否有五子相连
if np.sum([board[x+i][y+i] == color for i in range(5)]) == 5:
return True
# 判断右上到左下是否有五子相连
if np.sum([board[x+i][y-i] == color for i in range(5)]) == 5:
return True
return False
# 游戏开始
print("游戏开始,黑棋先行,用数字表示棋盘位置")
current_color = 1
while True:
x, y = map(int, input().split())
if move(current_color, x, y):
if check_win(current_color, x, y):
print("恭喜,", "黑" if current_color == 1 else "白", "棋获胜!")
break
current_color = 3 - current_color # 切换棋手
else:
print("此位置已有棋子,请重新落子")
```
这个demo使用了numpy库来初始化棋盘,落子和判断胜负。游戏开始时,黑棋先行,玩家输入落子的坐标,程序判断是否能够落子(如果该位置没有棋子),如果可以落子,则检查是否获胜(如果横向、纵向、左上到右下、右上到左下有五子相连),如果获胜则输出胜利信息,游戏结束。如果不能落子,则提示重新落子,切换到对手下棋。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)