检查 - 项目3: BYOW
项目3C 实验演示检查脚本
项目3C演示将在实验期间进行。
为了准备演示,我们会让你和你的搭档填写一份表格,在其中详细说明你所有的 野心功能以及如何使用这些功能的清晰而简洁的说明。这就是规格说明末尾链接的Proj3检查 表格。在这里请非常具体,因为如果你的说明不够具体,TA可能无法 使用你的功能。我们会提供一种方式让你申请重新评分,但我们建议你在第一次 就做对以避免麻烦。同样重要的是,你的代码只能使用java.*和 skeleton的library-sp24文件夹中的库。如果你的代码使用了额外的库,那么在检查过程中 出现技术故障时,TA将无法编译或运行你的代码。
以下是TA在检查你时会做的具体操作:我们建议你自己先演练一遍,以确保你没有 遗漏任何东西。你可以将你的仓库clone到电脑上的某个随机位置(比如你的 home 目录),如果你想跟着做并模拟你的检查。
两位搭档都必须出席。
设置
-
指定一位搭档作为演示者;这应该是预约了演示时段的那位搭档。他们应该
确保已经完成以下设置:
- IntelliJ打开你的项目3代码(打开哪个类无所谓)
- 程序运行中,BYOW主菜单已显示
-
你的仓库状态应该是包含你要演示的项目版本的提交(commit id应该与
Google表格中的相同)。如果这是你最近的提交,只需确保你的Git状态是干净的。如果是一个过去的提交,你可以通过运行
git switch --detach <commit id>来达到这个状态。(要恢复正常状态,运行git switch main。) - 如果你选择演示一个超过截止日期的项目版本(根据 大纲,会有百分比惩罚),请确保告知TA。
- 你的Git状态应该是干净的(没有要提交的更改)
检查脚本
- 评分者会询问每个人的班级ID (sp24-s***)
-
一位搭档应该指定他的笔记本电脑为"签到笔记本电脑",并且已经在一个终端窗口中进入了他们的
sp24-proj3-g***/proj3。他们的Git应该处于干净状态(git status应该是干净的),IntelliJ应该打开着,项目3主菜单 应该正在运行。- 如果这些要求中有任何一项未满足,你可能无法获得Proj3检查的分数。
- 运行"git log"并确保HEAD提交是截止日期之前的提交。运行"pwd"。确保路径 与打开的IntelliJ窗口的路径匹配。学生可以选择演示一个迟交的提交以获得部分分数。
- 检查主菜单是否有新游戏/世界、加载和退出选项。
- 检查按"n"是否能让玩家输入种子。
- 检查输入数字后按"s"是否开始生成世界。
- 检查地板和墙壁是否可以区分。
- 检查是否有至少2个可以视为走廊的结构。(1格宽,相当长)
- 检查世界是否包含转角走廊。如果当前世界没有转角走廊,让学生生成一个有转角走廊的世界。
- 检查是否有几个可以视为房间的矩形结构,它们通过走廊相连
- 检查WASD是否能让玩家上、下、左、右移动。
- 检查鼠标悬停在三个不同的瓦片上是否显示三个不同的名称(如果需要按键才能更新鼠标 悬停文本也是可以的)。
- 检查HUD是否没有闪烁。
- 检查撞墙时玩家是否停止移动且没有错误。
- 检查输入":Q"是否停止游戏。此时,记住世界的样子。你可以要求 学生截图或者你自己截一张。
- 重启程序后,测试加载/保存功能:检查按"L"是否能在没有额外输入的情况下开始一个世界。
- 检查世界布局是否与关闭前完全相同。
- 检查基本命令(WASD等)是否仍然有效。
- 退出并重新加载世界,再次确保基本命令仍然有效。
- 检查单独按"q"是否不会终止游戏。
- 生成3-5个世界,观察它们的多样性。根据你对世界 多样性的感受选择一个等级。
- 满分 - 每个生成的世界看起来都有显著不同,你会觉得当你 生成一个新世界时会看到新的东西
- 50%分数 - 世界不相同,但只有小的变化或移动,实际上没有改变 在世界中移动的体验(例如,房间总是在同一个位置,只是大小略有不同)
- 零分 - 世界大多数时候是相同的,或者房间的变化对玩家 体验/探索世界的方式没有影响。(例如,世界每次都一样,只有 地板颜色有变化)
- 然后评分者会询问你展示了哪些你尝试过的野心点数,并会决定你是 获得满分还是半分。
- 评分者会告诉你哪些项目获得了/没有获得分数。他们会问你是否同意你的 分数:如果你不同意,你将有机会申请重新评分。
分数分配
然后他们会对游戏的每个要求进行评分。每个要求可以被评为满分、半分 或零分。
基础世界功能 (共37分)
TA将运行你的项目并检查以下功能:
-
世界有一个主菜单屏幕,包含新世界、加载和退出选项(1分)
-
TA会按"n"或"N"(两者皆可),并检查世界是否提示输入种子(1分)
-
TA应该输入一些随机数字并按"s"或"S"(两者皆可),这应该立即开始生成 世界。TA还应该能够看到你在屏幕上输入的数字。(2分)
此时,程序应该正在运行,应该有一个可见的世界。
-
世界有视觉上可区分的墙壁和地板(2分)
-
世界至少有两条1格宽的走廊(1分)
-
世界至少有1条包含转角的走廊。如果当前世界没有,让学生生成一个有转角走廊的世界。(1分)
-
世界有一些通过走廊相连的房间(6分)
TA现在将尝试游戏过程中应该可用的基本命令。
-
TA应该随机按W、A、S和D键,并检查玩家移动是否与按下的键一致(2分)
-
TA应该悬停在3个不同的瓦片上,并确保它们的名称显示在屏幕上的某个位置,且名称合理(3分)
-
TA应该验证HUD没有闪烁(2分)
-
TA应该移动到墙边,确保玩家在墙边停下而不是继续移动进去(2分)
-
TA应该输入":q"或":Q"(两者皆可),这应该退出世界并关闭程序。TA此时应该记住 世界布局(2分)
程序现在已经关闭,我们将测试加载功能。
TA将在世界关闭后再次运行世界,主菜单应该再次出现。
-
TA应该按"l"或"L",世界应该立即开始(2分)
-
TA应该检查世界布局是否与关闭前完全相同(2.5分)
-
TA将再次运行基本命令(上面列出的)以确保世界仍然正常工作(2.5分)
-
TA将再次退出并加载,确保基本命令仍然有效(2.5分)。
-
TA将检查单独按"q"或"Q"不会退出游戏(2.5分)。
随机性 (共20分)
-
TA应该再次关闭世界,并开始测试世界是否是随机生成的。
-
学生组应该向TA解释他们在哪里使用了随机性,并提及 他们世界中在所有种子下保持一致的任何部分
-
TA应该检查随机性的使用不会导致世界的多样性受到严重限制(例如,随机 从一个有限的世界集合中选择一个世界布局)
-
TA应该打开世界3-5次,确保每次使用不同的种子
-
TA将关注你的世界在世界结构和玩家体验两方面生成多样性的能力。 这意味着当使用两个不同的种子生成新世界时,这些世界 不应该感觉相同(或几乎相同)。
评分细分如下:
-
20分待定:世界主要是随机的,如上述部分所述。
-
10分待定:世界表现出一些随机元素,但总体看起来相同
-
0分:世界不包含随机元素。
野心点数 (最高28分)
-
学生应该陈述并演示属于野心类别的功能。你应该非常明确地说明如何"激活"或使用该功能。
-
TA将记录学生成功演示的功能及其基于规格的分数值, 为每个项目给予满分、半分或零分。