跳到主要内容 链接 搜索 菜单 展开 文档 (外部链接)

常见问题

课程工作人员会在你们提出关于项目的问题时不断更新这个页面!如果你有一个在这里没有得到解答的问题,请在实验室、办公时间或 Ed 上提问!


设置

在 IntelliJ 中,我遇到“release version 18 not supported”错误

进入 File > 项目 Structure > 项目 Settings > 项目,确保你的 Language level 设置为 17。 此外,前往 模块 并确保 proj0 的 Language level 也是 17。


入门指南

看起来要写很多代码。我们如何在过程中检查我们的做法是否正确?

这叫做测试!我们有两种主要的测试代码的方法:单元测试和验收/集成测试。 单元测试旨在测试程序的各个代码片段——通常是各个方法。验收/ 集成测试测试你的程序作为一个整体如何工作,包括类之间如何交互以及如何 处理用户输入。

这是 规范中关于测试的部分 。对于这个项目,我们已经提供了所有将用于 评分作业的测试。你将通过 JUnit 运行这些测试。你可以在 IntelliJ 中运行每个测试类, 它会显示哪些测试通过或失败,包括期望值与你的实际输出。这对于 调试非常非常有用。一般的工作流程是查看你失败的测试,理解预期 值,将它们与你的实际输出进行比较,如果你遇到困难,可以使用调试器逐步执行测试用例。你 甚至可以按照提供的测试格式编写自己的测试!这是很好的练习,因为我们希望你 在以后的作业中这样做(而且在现实世界中你也必须编写自己的测试)。

改编自 Shreyas Kallingal。


TestAtLeastOneMoveExists

我通过了 TestAtLeastOneMoveExists 中除 testAnyDir 之外的所有测试。如果我的代码在每个方向上都能工作,为什么在任意方向上会失败?

在这个测试中,相关的移动在边界上(特别是右上角)。如果你在遍历棋盘上的 坐标,请确保你考虑了 每一种可能的比较 。例如,你的 for 循环中的边界 条件可能差了一个。


tilt

我不知道如何开始实现 tilt

请观看 Josh 关于这个方法的介绍视频 !不过,介绍视频中的方法可能与当前的框架代码有所不同,因为发生了很多变化。