Skip to main content

Checkoff - Project 3 BYOW

Project 3C Lab Demo 检查清单

Project 3C 的演示将在实验课期间进行。

为了准备演示,您和您的伙伴需要填写一份表格。请在表格中详细说明您所有的进阶功能,并提供清晰简洁的使用说明。这是规范中链接的 Proj3 检查清单。请务必写清楚,否则助教可能无法使用您的功能。我们将提供一种方式让您申请重新评分,但我们建议您第一次就做好,以避免麻烦。重要的是,您的代码只能使用 java.* 中的库和官方 skeleton 提供的 library-sp24 文件夹中的库。如果您的代码使用了其他库,万一检查时出现技术故障,助教需要克隆您的仓库并在自己的电脑上运行。 这样一来,助教可能无法编译或运行您的代码。大部分分数都在检查中,所以请确保您只使用了这些库。

下面是助教检查时会做的步骤。我们建议您提前试运行一遍,确保万无一失。您可以将代码仓库克隆到您电脑的任意位置(例如您的主目录),来模拟检查过程。

双方都必须在场。

设置

  • 指定一位伙伴作为演示者;这应该是注册演示时段的伙伴。他们应该确保已经设置好以下内容:
    • 在 IntelliJ 中打开您的 Project 3 代码 (任何类都可以).
    • 程序运行并显示 BYOW 主菜单
    • 您的代码仓库应该处于包含您要演示的项目版本的提交状态 (提交 ID 应该与 Google 表单中的一致)。 如果是最新的提交,请确保 Git 状态是干净的。 如果是之前的提交,可以使用 git switch --detach <commit id> 切换到该状态。(使用 git switch main 可以恢复到正常状态。)
    • 如果您选择演示一个超过截止日期的项目版本(根据教学大纲,会受到百分比的处罚),请务必告知助教。
    • 您的 Git 状态应该是干净的(没有要提交的更改)

检查脚本

  1. 评分员会询问每个人的班级 ID (sp24-s***)

  2. 一位伙伴应将其笔记本电脑指定为“签入笔记本电脑”,并且已经在其 sp24-proj3-g***/proj3 中打开一个终端窗口。他们的 Git 应该处于干净状态(git status 应该干净),IntelliJ 应该打开,并且 Project 3 主菜单应该正在运行。

    • 如果未满足任何这些要求,您可能无法获得 Proj3 检查的分数。
  3. 运行 "git log",确保 HEAD commit 是截止日期前的提交。运行 "pwd",确保路径与打开的 IntelliJ 窗口的路径匹配。学生可以选择演示一个迟交的 commit,以获得部分分数。

  4. 检查是否显示包含“新游戏/世界”、“加载”和“退出”选项的主菜单。

  5. 检查按下 'n' 键是否允许玩家输入种子。

  6. 检查输入数字后按下 's' 键是否开始游戏。

  7. 检查地板和墙壁是否可区分。

  8. 检查是否存在至少两条可被视作走廊的结构。(宽度为一格,略长)

  9. 检查世界是否包含转弯的走廊。如果当前世界没有转弯的走廊,则请要求学生生成一个包含转弯走廊的世界。

  10. 检查是否存在一些可以被认为是房间的矩形结构,这些房间通过走廊连接。

  11. 检查是否能用 WASD 键控制玩家向上、左、下、右移动。

  12. 检查鼠标悬停在三个不同图块上时,是否显示三个不同的名称(如果需要按键才能刷新悬停文本,则可接受)。

  13. 检查 HUD 是否闪烁。

  14. 检查玩家移动到墙壁时是否会停止,且没有错误发生。

  15. 检查输入 ':Q' 是否停止游戏。此时,保存当前游戏状态。您可以要求学生提供截图,或者自己截图。

  16. 重新启动程序后,测试加载/保存功能:检查按下 'L' 键是否能直接加载游戏,无需额外输入。

  17. 检查世界布局是否与关闭世界之前完全相同。

  18. 检查基本命令(WASD 等)是否仍然有效。

  19. 再次退出并重新加载世界,并确保基本命令仍然有效。

  20. 检查单独输入 "q" 是否不会终止游戏。

  21. 生成 3-5 个世界,并观察它们的变化程度。根据你认为他们生成的世界变化程度,选择一个评价等级。

  • 满分 - 每次生成的世界都有显著差异,能带来新鲜感。
  • 50% 分数 - 世界并非完全相同,但只有细微变化,对游戏体验影响不大。
  • 0 分 - 世界在大多数时候都是相同的,或者房间变化对玩家体验和探索方式没有影响。
  1. 评分者会要求您展示所有尝试过的挑战特性,并根据完成情况给予满分或半分。
  2. 评分者会告诉您哪些项目您获得了/没有获得分数。他们会询问您是否同意您的分数:如果您不同意,您将有机会申请重新评分。

评分标准

然后,他们将对游戏的每个要求进行评分。每个要求可以被评估为满分、半分或零分。

基本世界功能(总共 37 分)

助教将运行您的项目并检查以下功能:

  • 世界有一个主菜单屏幕,其中包含 New World、“加载”和“退出”选项(1 分)

  • 助教会点击 'n' 或 'N' 键,并检查世界是否提示输入种子(1 分)

  • 助教应该输入几个随机数字,然后按“s”或“S”(大小写均可),游戏应该立即开始。助教还应该能看到屏幕上正在输入的数字。(2 分)

此时,程序应该正在运行,并且应该有一个可见的游戏世界。

  • 游戏世界中的墙壁和地板在视觉上容易区分。(2 分)

  • 游戏世界至少要有两条宽度为一个图块的走廊。(1 分)

  • 游戏世界中至少要有一条有转弯的走廊。如果当前生成的世界没有,让学生重新生成一个。(1 分)

  • 游戏世界中应该有一些通过走廊相连的房间。(6 分)

接下来,助教将测试游戏中可用的基本操作。

  • 助教应该随机按 W、A、S、D 键,检查玩家移动是否与按键对应。(2 分)

  • 助教应该将鼠标悬停在三个不同的图块上,确保屏幕上能显示这些图块的名称,并且名称合理。(3 分)

  • 助教应验证 HUD 是否不闪烁(2 分)

  • 助教应该尝试移动到墙壁里,确保玩家角色会被墙挡住,而不是穿墙而过。(2 分)

  • 助教应该输入“:q”或“:Q”(大小写均可),这会退出游戏并关闭程序。助教需要记住此时的游戏世界布局。(2 分)

程序现已关闭,我们将测试加载功能。

助教应该在游戏关闭后再次运行,主菜单应该会再次出现。

  • 助教应该按下“l”或“L”(大小写均可),游戏应该立即加载。(2 分)

  • 助教应该检查加载后的游戏布局是否和关闭前完全一致。(2.5 分)

  • 助教需要再次测试上述基本操作,确保游戏功能正常。(2.5 分)

  • 助教需要再次退出并重新加载游戏,确保基本操作仍然有效。(2.5 分)

  • 助教需要检查单独输入“q”或“Q”是否不会导致游戏退出。(2.5 分)

随机性(总分 20 分)

  • 助教需要再次关闭游戏,然后开始测试游戏世界的随机生成特性。

  • 学生需要向助教说明他们在哪些地方使用了随机性,并指出在不同种子下保持不变的部分。

  • 助教需要检查随机性的使用是否会过度限制游戏世界的种类(例如,从有限的世界布局集合中随机选择)。

  • 助教应该打开游戏 3-5 次,确保每次都使用不同的种子

  • 助教将评估游戏世界在结构和探索体验上的多样性。这意味着使用不同种子生成的世界应该有明显的差异。

评分细分如下:

  • 20 分 待定:游戏世界主要是随机的,如上文所述。

  • 10 分 待定:游戏世界表现出一些随机元素,但总体看起来相同

  • 0 分:游戏世界不包含任何随机元素。

挑战功能得分(最高 28 分)

  • 学生应说明并演示属于挑战功能类别的功能。您应该非常明确如何“激活”或使用该功能。
  • 助教会将记录学生成功演示的功能,并按照评分标准给予满分、一半分或者零分。