用python写一个围棋游戏
时间: 2024-05-14 09:17:05 浏览: 22
好的,下面是一个简单的围棋游戏的 Python 实现,基于 Pygame 模块:
```python
import pygame
# 初始化 Pygame
pygame.init()
# 定义游戏窗口大小
WINDOW_SIZE = (600, 600)
# 定义格子大小
GRID_SIZE = 60
# 创建游戏窗口
screen = pygame.display.set_mode(WINDOW_SIZE)
# 设置窗口标题
pygame.display.set_caption("围棋")
# 定义黑白棋子的半径
RADIUS = int(GRID_SIZE / 2 - 5)
# 定义棋盘数组
board = [[0] * 9 for i in range(9)]
# 定义当前下棋方
current_player = 1
# 定义游戏循环标志
running = True
# 定义检查连续棋子函数
def check_continuous(board, x, y, dx, dy, color):
count = 0
while x >= 0 and x < 9 and y >= 0 and y < 9 and board[x][y] == color:
count += 1
x += dx
y += dy
return count
# 定义检查是否胜利函数
def check_win(board, color):
for i in range(9):
for j in range(9):
if board[i][j] == color:
if check_continuous(board, i, j, 1, 0, color) >= 5:
return True
elif check_continuous(board, i, j, 0, 1, color) >= 5:
return True
elif check_continuous(board, i, j, 1, 1, color) >= 5:
return True
elif check_continuous(board, i, j, 1, -1, color) >= 5:
return True
return False
# 游戏循环
while running:
# 处理事件
for event in pygame.event.get():
# 如果是退出事件,则退出游戏循环
if event.type == pygame.QUIT:
running = False
# 如果是鼠标点击事件,则下棋子
elif event.type == pygame.MOUSEBUTTONDOWN:
# 获取鼠标位置
x, y = pygame.mouse.get_pos()
# 计算棋子所在的格子坐标
row = int(y / GRID_SIZE)
col = int(x / GRID_SIZE)
# 如果当前格子没有棋子,则下棋子
if board[row][col] == 0:
board[row][col] = current_player
# 检查是否胜利
if check_win(board, current_player):
print("Player %d wins!" % current_player)
running = False
# 切换下棋方
current_player = 3 - current_player
# 绘制棋盘和棋子
screen.fill((255, 255, 255))
for i in range(9):
for j in range(9):
# 绘制格子
pygame.draw.rect(screen, (0, 0, 0), (j * GRID_SIZE, i * GRID_SIZE, GRID_SIZE, GRID_SIZE), 2)
# 绘制棋子
if board[i][j] == 1:
pygame.draw.circle(screen, (0, 0, 0), (j * GRID_SIZE + RADIUS, i * GRID_SIZE + RADIUS), RADIUS)
elif board[i][j] == 2:
pygame.draw.circle(screen, (255, 255, 255), (j * GRID_SIZE + RADIUS, i * GRID_SIZE + RADIUS), RADIUS)
# 更新屏幕
pygame.display.update()
# 退出 Pygame
pygame.quit()
```
这个程序实现了一个简单的围棋游戏,并可以检查胜利条件。你可以按照自己的需要进行修改和扩展。
相关推荐
![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)