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 状态应该是干净的(没有要提交的更改)
检查脚本
评分员会询问每个人的班级 ID (sp24-s***)
一位伙伴应将其笔记本电脑指定为“签入笔记本电脑”,并且已经在其
sp24-proj3-g***/proj3
中打开一个终端窗口。他们的 Git 应该处于干净状态(git status 应该干净),IntelliJ 应该打开,并且 Project 3 主菜单应该正在运行。- 如果未满足任何这些要求,您可能无法获得 Proj3 检查的分数。
运行 "git log",确保 HEAD commit 是截止日期前的提交。运行 "pwd",确保路径与打开的 IntelliJ 窗口的路径匹配。学生可以选择演示一个迟交的 commit,以获得部分分数。
检查是否显示包含“新游戏/世界”、“加载”和“退出”选项的主菜单。
检查按下 'n' 键是否允许玩家输入种子。
检查输入数字后按下 's' 键是否开始游戏。
检查地板和墙壁是否可区分。
检查是否存在至少两条可被视作走廊的结构。(宽度为一格,略长)
检查世界是否包含转弯的走廊。如果当前世界没有转弯的走廊,则请要求学生生成一个包含转弯走廊的世界。
检查是否存在一些可以被认为是房间的矩形结构,这些房间通过走廊连接。
检查是否能用 WASD 键控制玩家向上、左、下、右移动。
检查鼠标悬停在三个不同图块上时,是否显示三个不同的名称(如果需要按键才能刷新悬停文本,则可接受)。
检查 HUD 是否闪烁。
检查玩家移动到墙壁时是否会停止,且没有错误发生。
检查输入 ':Q' 是否停止游戏。此时,保存当前游戏状态。您可以要求学生提供截图,或者自己截图。
重新启动程序后,测试加载/保存功能:检查按下 'L' 键是否能直接加载游戏,无需额外输入。
检查世界布局是否与关闭世界之前完全相同。
检查基本命令(WASD 等)是否仍然有效。
再次退出并重新加载世界,并确保基本命令仍然有效。
检查单独输入 "q" 是否不会终止游戏。
生成 3-5 个世界,并观察它们的变化程度。根据你认为他们生成的世界变化程度,选择一个评价等级。
- 满分 - 每次生成的世界都有显著差异,能带来新鲜感。
- 50% 分数 - 世界并非完全相同,但只有细微变化,对游戏体验影响不大。
- 0 分 - 世界在大多数时候都是相同的,或者房间变化对玩家体验和探索方式没有影响。
- 评分者会要求您展示所有尝试过的挑战特性,并根据完成情况给予满分或半分。
- 评分者会告诉您哪些项目您获得了/没有获得分数。他们会询问您是否同意您的分数:如果您不同意,您将有机会申请重新评分。
评分标准
然后,他们将对游戏的每个要求进行评分。每个要求可以被评估为满分、半分或零分。
基本世界功能(总共 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 分)
- 学生应说明并演示属于挑战功能类别的功能。您应该非常明确如何“激活”或使用该功能。
- 助教会将记录学生成功演示的功能,并按照评分标准给予满分、一半分或者零分。