好的,下面是使用Pygame实现桃花棋游戏的示例代码:
```python
import pygame
# 初始化Pygame
pygame.init()
# 游戏窗口大小
WINDOW_SIZE = (400, 400)
# 颜色定义
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
# 创建游戏窗口
screen = pygame.display.set_mode(WINDOW_SIZE)
# 设置窗口标题
pygame.display.set_caption("桃花棋")
# 定义棋盘格子大小和间隔
CELL_SIZE = 40
CELL_SPACING = 10
# 定义棋子半径
PIECE_RADIUS = 18
# 定义棋子颜色
PIECE_COLOR = (255, 0, 0)
# 定义棋盘坐标
board = [['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O']]
# 定义当前落子方
current_player = 'B'
# 定义棋子位置
piece_x = 0
piece_y = 0
# 绘制棋盘
def draw_board():
for x in range(8):
for y in range(8):
# 计算格子左上角坐标
rect_x = CELL_SPACING + x * (CELL_SIZE + CELL_SPACING)
rect_y = CELL_SPACING + y * (CELL_SIZE + CELL_SPACING)
# 绘制格子
pygame.draw.rect(screen, WHITE, (rect_x, rect_y, CELL_SIZE, CELL_SIZE))
# 绘制棋子
if board[x][y] == 'B':
pygame.draw.circle(screen, PIECE_COLOR, (rect_x + CELL_SIZE // 2, rect_y + CELL_SIZE // 2), PIECE_RADIUS)
elif board[x][y] == 'W':
pygame.draw.circle(screen, WHITE, (rect_x + CELL_SIZE // 2, rect_y + CELL_SIZE // 2), PIECE_RADIUS, 2)
# 落子
def place_piece(x, y):
global current_player
if board[x][y] == 'O':
board[x][y] = current_player
if current_player == 'B':
current_player = 'W'
else:
current_player = 'B'
# 主循环
running = True
while running:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
# 获取鼠标点击坐标
mouse_x, mouse_y = pygame.mouse.get_pos()
# 计算棋子所在格子
piece_x = (mouse_x - CELL_SPACING) // (CELL_SIZE + CELL_SPACING)
piece_y = (mouse_y - CELL_SPACING) // (CELL_SIZE + CELL_SPACING)
# 落子
place_piece(piece_x, piece_y)
# 绘制背景
screen.fill(GREEN)
# 绘制棋盘
draw_board()
# 绘制当前落子位置的提示圆圈
pygame.draw.circle(screen, RED, (CELL_SPACING + piece_x * (CELL_SIZE + CELL_SPACING) + CELL_SIZE // 2, CELL_SPACING + piece_y * (CELL_SIZE + CELL_SPACING) + CELL_SIZE // 2), PIECE_RADIUS + 2, 2)
# 刷新屏幕
pygame.display.update()
# 退出Pygame
pygame.quit()
```
该示例代码实现了一个简单的桃花棋游戏,玩家可以通过点击鼠标来落子,程序会自动判断当前落子方并更新棋盘。游戏界面使用Pygame库绘制,实现了棋盘格子和棋子的绘制,以及落子位置的提示圆圈。