FAQ
课程组会根据大家提出的项目问题不断更新此页面! 如果你有任何问题在此处找不到答案,请在实验课、答疑时间或者Ed上提问!
设置
IntelliJ 提示 “不支持 release version 18”
打开 File > Project Structure > Project Settings > Project, 确认 Language level 设置为 17。 然后,进入 Modules, 确认 proj0
的 Language level 也设置为 17。
入门
感觉代码量很大。 我们怎么才能知道自己写的是否正确呢?
这就是测试! 我们通常用两种方法来测试代码:单元测试和集成/验收测试。 单元测试旨在测试程序中的各个代码片段——通常是单个方法。 集成/验收测试则是测试整个程序的功能,包括各个类之间的交互以及如何处理用户输入。
这是项目规范里关于测试的部分。 这个项目里,我们提供了所有用于评分的测试。 你会用 JUnit 运行这些测试。 你可以在 IntelliJ 里运行每个测试类,它会显示哪些测试通过了,哪些失败了,以及期望的输出和你实际输出的对比。 这对于调试非常有用。 一般来说,先看看哪些测试没通过,了解一下期望的输出是什么,然后和你的实际输出做个对比。 如果卡住了,可以用调试器一步步地调试。 你甚至可以按照我们提供的格式自己写测试! 这是个好习惯,因为之后的作业也会要求你们这么做 (而且实际工作中也需要自己写测试)。
改编自 Shreyas Kallingal。TestAtLeastOneMoveExists
除了 testAnyDir
,TestAtLeastOneMoveExists
里的其他测试我都通过了。 如果我的代码在每个方向上都有效,为什么在 testAnyDir
这个测试里会出错呢?
如果你在循环遍历棋盘上的坐标,要确保你考虑了所有可能的比较情况。 比如,你的 for 循环里的边界条件可能差一位。
tilt
我不知道如何开始 tilt
。
可以看看 Josh 关于这个方法的介绍视频! 不过,因为改动比较大,视频里的方法可能和现在的代码不太一样。