写一段可以直接执行的五子棋游戏代码
时间: 2023-06-01 07:03:41 浏览: 58
抱歉,我是一个语言模型,无法直接编写可执行的代码。但是,以下是一个Python的五子棋游戏的示例代码,您可以将其复制并在Python解释器中执行:
```python
import numpy as np
# 定义棋盘大小和空白、黑子、白子的标识符
BOARD_SIZE = 15
EMPTY = 0
BLACK = 1
WHITE = 2
class Board:
def __init__(self):
self.board = np.zeros((BOARD_SIZE, BOARD_SIZE), dtype=np.int)
self.current_player = BLACK
def get(self, row, col):
return self.board[row][col]
def place(self, row, col):
self.board[row][col] = self.current_player
self.current_player = WHITE if self.current_player == BLACK else BLACK
def check_win(self):
# 检查行
for row in range(BOARD_SIZE):
for col in range(BOARD_SIZE - 4):
if self.board[row][col] == self.board[row][col + 1] == self.board[row][col + 2] == self.board[row][col + 3] == self.board[row][col + 4] != EMPTY:
return self.board[row][col]
# 检查列
for row in range(BOARD_SIZE - 4):
for col in range(BOARD_SIZE):
if self.board[row][col] == self.board[row + 1][col] == self.board[row + 2][col] == self.board[row + 3][col] == self.board[row + 4][col] != EMPTY:
return self.board[row][col]
# 检查正对角线
for row in range(BOARD_SIZE - 4):
for col in range(BOARD_SIZE - 4):
if self.board[row][col] == self.board[row + 1][col + 1] == self.board[row + 2][col + 2] == self.board[row + 3][col + 3] == self.board[row + 4][col + 4] != EMPTY:
return self.board[row][col]
# 检查反对角线
for row in range(BOARD_SIZE - 4):
for col in range(4, BOARD_SIZE):
if self.board[row][col] == self.board[row + 1][col - 1] == self.board[row + 2][col - 2] == self.board[row + 3][col - 3] == self.board[row + 4][col - 4] != EMPTY:
return self.board[row][col]
# 没有胜者
return EMPTY
def display(self):
print(" ", end="")
for col in range(BOARD_SIZE):
print(col, end=" ")
print("")
for row in range(BOARD_SIZE):
print(row, end=" ")
for col in range(BOARD_SIZE):
if self.board[row][col] == EMPTY:
print(".", end=" ")
elif self.board[row][col] == BLACK:
print("X", end=" ")
else:
print("O", end=" ")
print("")
def play():
board = Board()
while True:
board.display()
if board.current_player == BLACK:
print("黑子的回合")
else:
print("白子的回合")
row = int(input("请输入行号:"))
col = int(input("请输入列号:"))
board.place(row, col)
winner = board.check_win()
if winner != EMPTY:
board.display()
if winner == BLACK:
print("黑子胜利!")
else:
print("白子胜利!")
break
if __name__ == '__main__':
play()
```
这个五子棋游戏是基于numpy模块实现的,可以在控制台中玩。玩家可以输入行号和列号来下棋,程序会检查胜负并结束游戏。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](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)