Skip to main content

FAQ - Lab10

我遇到了下面的错误,该怎么办?

测试失败!
------------
java.awt.HeadlessException:
未设置 X11 DISPLAY 变量,
或者未找到 headful 库支持,
但此程序执行了需要它的操作,

如果您在 testClearLines 方法中收到上述错误,请确保您没有在方法中调用 renderBoard 或任何使用 StdDraw 库的方法。自动评测机无法渲染或显示,因此,使用 StdDraw 库会在自动评测机上引发问题。

我正在尝试玩游戏,但棋盘显示为黑色屏幕。

一个常见问题是 runGame 的结构设计。建议重新查看规范中关于 runGame 的详细描述,尤其是以下部分:

  • 如果当前的俄罗斯方块无法向下移动或无法再从其当前位置移动,则将其设置为 null 将其设为 null 的逻辑已经实现,无需您处理。

什么时候应该生成新的方块?

另一个需要注意的是,确保在 renderScore 或其他任何地方渲染棋盘时,不要每次都清除棋盘。例如,在 renderScore 中调用 StdDraw.clear 可能会导致每次游戏尝试渲染分数时,屏幕都被特定颜色清除。

我的游戏可以运行,消除行功能也似乎正常,但无法通过自动评测机的测试。

您应该使用传递给 clearLines 方法的 tiles 变量/对象,而不是使用 board 实例变量。自动评测机会构建自己的棋盘并传递给 clearLines 方法进行测试,请务必使用正确的变量!