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

Pygame无法生成国际象棋棋盘网格,错误来源无法定位

问题根因
  • 绘制逻辑未触发:你编写的drawBoard、drawGameState等棋盘绘制函数,从未在main函数的主运行循环内被调用,所有绘制代码没有实际执行过。
  • 无效调用位置错误:你在代码末尾写的drawGameState()既缺少必填的screen、gs入参,执行时机也在main()函数返回(即用户关闭窗口)之后,此时pygame资源已即将释放,完全不会生效。
修复方案

仅需调整main函数的循环逻辑,把绘制流程加到清屏和屏幕刷新之间,同时删除末尾的无效drawGameState()调用即可,修改后的核心代码如下:

def main():
    p.init()
    screen = p.display.set_mode((WIDTH, HEIGHT))
    clock = p.time.Clock()
    gs = chessEngine.GameState()
    loadImages()
    running = True
    while running:
        for e in p.event.get():
            if e.type == p.QUIT:
                running = False
        # 每次刷新先清屏,避免后续添加动画、棋子移动时出现残影
        screen.fill(p.Color("white"))
        # 调用绘制函数生成棋盘
        drawGameState(screen, gs)
        clock.tick(MAX_FPS)
        p.display.flip()

# 下面这行原代码直接删除即可,属于无效调用
# drawGameState()

修改后运行即可看到8*8的灰白相间棋盘。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:36:03