写一个五子棋代码并附带运行操作方法
时间: 2024-02-19 11:04:00 浏览: 84
好的,以下是一个简单的五子棋代码,使用 Python 语言编写:
```python
import numpy as np
# 定义棋盘大小
BOARD_SIZE = 15
# 定义棋子
EMPTY = 0
BLACK = 1
WHITE = 2
class Gobang:
def __init__(self):
# 初始化棋盘
self.board = np.zeros((BOARD_SIZE, BOARD_SIZE), dtype=np.int)
# 初始化当前玩家
self.current_player = BLACK
# 初始化游戏结束状态
self.game_over = False
def place(self, x, y):
# 判断落子是否合法
if self.board[x][y] != EMPTY:
return False
# 落子
self.board[x][y] = self.current_player
# 判断是否胜利
if self.check_win(x, y):
self.game_over = True
# 切换当前玩家
self.current_player = BLACK if self.current_player == WHITE else WHITE
return True
def check_win(self, x, y):
# 判断横向是否连成五子
if self.get_count(x, y, 1, 0) + self.get_count(x, y, -1, 0) >= 4:
return True
# 判断纵向是否连成五子
if self.get_count(x, y, 0, 1) + self.get_count(x, y, 0, -1) >= 4:
return True
# 判断左上到右下是否连成五子
if self.get_count(x, y, 1, 1) + self.get_count(x, y, -1, -1) >= 4:
return True
# 判断右上到左下是否连成五子
if self.get_count(x, y, 1, -1) + self.get_count(x, y, -1, 1) >= 4:
return True
return False
def get_count(self, x, y, dx, dy):
count = 0
while (x + dx >= 0 and x + dx < BOARD_SIZE and y + dy >= 0 and y + dy < BOARD_SIZE and
self.board[x + dx][y + dy] == self.current_player):
count += 1
x += dx
y += dy
return count
def print_board(self):
for i in range(BOARD_SIZE):
for j in range(BOARD_SIZE):
if self.board[i][j] == EMPTY:
print("+", end=" ")
elif self.board[i][j] == BLACK:
print("●", end=" ")
else:
print("○", end=" ")
print()
# 运行测试
if __name__ == "__main__":
gobang = Gobang()
while not gobang.game_over:
gobang.print_board()
x, y = input("请输入坐标,用逗号分隔:").split(",")
x, y = int(x), int(y)
gobang.place(x, y)
gobang.print_board()
print("游戏结束!")
```
运行方法:
1. 复制以上代码到本地的 Python 环境中。
2. 运行代码,即可开始游戏。
3. 玩家输入坐标,用逗号分隔,如:6,6。
4. 当有一方连成五子时,游戏结束。
阅读全文