FAQ - Lab10
我遇到了下面的错误,该怎么办?
测试失败!
------------
java.awt.HeadlessException:
未设置 X11 DISPLAY 变量,
或者未找到 headful 库支持,
但此程序执行了需要它的操作,
如果您在 testClearLines
方法中收到上述错误,请确保您没有在方法中调用 renderBoard
或任何使用 StdDraw
库的方法。自动评测机无法渲染或显示,因此,使用 StdDraw
库会在自动评测机上引发问题。
我正在尝试玩游戏,但棋盘显示为黑色屏幕。
一个常见问题是 runGame
的结构设计。建议重新查看规范中关于 runGame
的详细描述,尤其是以下部分:
- 如果当前的俄罗斯方块无法向下移动或无法再从其当前位置移动,则将其设置为
null
。 将其设为null
的逻辑已经实现,无需您处理。
什么时候应该生成新的方块?
另一个需要注意的是,确保在 renderScore
或其他任何地方渲染棋盘时,不要每次都清除棋盘。例如,在 renderScore
中调用 StdDraw.clear
可能会导致每次游戏尝试渲染分数时,屏幕都被特定颜色清除。
我的游戏可以运行,消除行功能也似乎正常,但无法通过自动评测机的测试。
您应该使用传递给 clearLines
方法的 tiles
变量/对象,而不是使用 board
实例变量。自动评测机会构建自己的棋盘并传递给 clearLines
方法进行测试,请务必使用正确的变量!