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
相关产品推荐
相关产品推荐

