能不能用Python写一个五子棋的代码
时间: 2024-05-05 18:22:56 浏览: 79
当然可以,以下是一个简单的五子棋代码示例,基于Python的pygame库实现:
```python
import pygame
# 初始化
pygame.init()
# 游戏窗口大小
width, height = 640, 640
# 创建游戏窗口
screen = pygame.display.set_mode((width, height))
# 设置游戏窗口标题
pygame.display.set_caption("五子棋")
# 棋盘大小
board_size = 15
# 棋盘格子大小
cell_size = 40
# 棋盘坐标偏移量
offset_x, offset_y = (width - board_size * cell_size) // 2, (height - board_size * cell_size) // 2
# 定义棋盘数组,0表示空格,1表示黑子,2表示白子
board = [[0] * board_size for _ in range(board_size)]
# 当前下棋方,1表示黑方,2表示白方
current_player = 1
# 游戏主循环
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
# 处理鼠标点击事件
if event.type == pygame.MOUSEBUTTONDOWN:
# 获取鼠标点击位置
x, y = event.pos
# 计算棋子所在的行列
row, col = (y - offset_y) // cell_size, (x - offset_x) // cell_size
# 如果该位置已经有棋子,不再处理
if board[row][col] != 0:
continue
# 在该位置下棋
board[row][col] = current_player
# 切换下棋方
current_player = 3 - current_player
# 绘制棋盘
screen.fill((255, 255, 255))
for i in range(board_size):
pygame.draw.line(screen, (0, 0, 0), (offset_x, offset_y + i * cell_size), (offset_x + (board_size - 1) * cell_size, offset_y + i * cell_size), 1)
pygame.draw.line(screen, (0, 0, 0), (offset_x + i * cell_size, offset_y), (offset_x + i * cell_size, offset_y + (board_size - 1) * cell_size), 1)
# 绘制棋子
for i in range(board_size):
for j in range(board_size):
if board[i][j] == 1:
pygame.draw.circle(screen, (0, 0, 0), (offset_x + j * cell_size, offset_y + i * cell_size), cell_size // 2 - 2)
elif board[i][j] == 2:
pygame.draw.circle(screen, (255, 255, 255), (offset_x + j * cell_size, offset_y + i * cell_size), cell_size // 2 - 2)
# 更新屏幕
pygame.display.update()
```
这个代码实现了一个简单的五子棋游戏,支持双人对战,玩家通过鼠标点击棋盘上的空格子来下棋。该代码只是一个简单的示例,还有很多可以优化和改进的地方,你可以根据自己的需求和兴趣进行修改和扩展。
阅读全文