You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pygame入门:如何在棋盘角落与线交点放置不同颜色棋子?

在Pygame棋盘的指定位置放置棋子

嘿,作为Pygame新手能写出这样的棋盘绘制代码已经超棒啦!要在棋盘的角落和线条交点放上黑红两种棋子其实很简单,咱们一步步来实现:

步骤1:确定所有需要放置棋子的坐标

首先得把所有目标位置的坐标整理出来,包括:

  • 三个矩形的所有角落
  • 四条白色线条的端点和交点

我帮你整理好了所有关键点:

# 所有需要放棋子的位置列表
piece_positions = [
    # 最外层红矩形角落
    (100, 50), (550, 50), (100, 400), (550, 400),
    # 中间绿矩形角落
    (150, 75), (500, 75), (150, 375), (500, 375),
    # 内层红矩形角落
    (200, 100), (450, 100), (200, 350), (450, 350),
    # 线条交点与端点
    (325, 50), (325, 100), (325, 200), (325, 350), (325, 400),
    (100, 200), (200, 200), (450, 200), (550, 200)
]

步骤2:定义棋子样式与颜色分配

咱们用pygame.draw.circle()来画圆形棋子,先定义棋子半径,再把位置分成两组分配黑红颜色——这里用奇偶索引交替分配,你也可以根据自己的游戏规则调整颜色逻辑。

步骤3:修改代码实现绘制

把绘制棋子的逻辑加入代码,注意要把所有绘制操作(棋盘、线条、棋子)放在主循环内,这样窗口刷新时不会丢失内容。

修改后的完整代码

import pygame
import sys
pygame.init()

# 定义颜色
white = (255,255,255)
black = (0,0,0)
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)
yellow= (255,255,0)

# 定义棋子半径
piece_radius = 10

# 初始化窗口
screen = pygame.display.set_mode((800,600))
pygame.display.set_caption("我的棋盘游戏")  # 给窗口加个标题

# 主循环
while True:
    # 处理退出事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    
    # 填充背景色,避免刷新留下残影
    screen.fill(blue)
    
    # 绘制棋盘边框
    pygame.draw.rect(screen, red, (200,100,250,250), 2)
    pygame.draw.rect(screen, green, (150,75,350,300), 2)
    pygame.draw.rect(screen, red, (100,50,450,350), 2)
    
    # 绘制线条
    pygame.draw.line(screen,white,(325,50),(325,100),3)
    pygame.draw.line(screen,white,(325,350),(325,400),3)
    pygame.draw.line(screen,white,(100,200),(200,200),3)
    pygame.draw.line(screen,white,(450,200),(550,200),3)
    
    # 所有棋子位置
    piece_positions = [
        (100, 50), (550, 50), (100, 400), (550, 400),
        (150, 75), (500, 75), (150, 375), (500, 375),
        (200, 100), (450, 100), (200, 350), (450, 350),
        (325, 50), (325, 100), (325, 200), (325, 350), (325, 400),
        (100, 200), (200, 200), (450, 200), (550, 200)
    ]
    
    # 交替绘制黑红棋子
    for index, pos in enumerate(piece_positions):
        if index % 2 == 0:
            pygame.draw.circle(screen, black, pos, piece_radius)
        else:
            pygame.draw.circle(screen, red, pos, piece_radius)
    
    # 更新窗口显示
    pygame.display.update()

小说明

  • 添加了背景填充,解决了窗口刷新时的残影问题
  • 用奇偶索引分配颜色,你可以改成自己需要的规则(比如特定位置固定颜色)
  • 棋子半径设为10,你可以根据棋盘大小调整这个数值
  • 给窗口加了标题,让界面更完整

如果之后想实现棋子拖动、点击放置等功能,也可以继续扩展哦!

内容的提问来源于stack exchange,提问作者shyckh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 21:47:34