CS代考 MCD4720 – C++基础 作业2和3 – 第一学期,2022年

C++的基础 作业2和3
订阅DeepL Pro以翻译大型文件。 欲了解更多信息,请访问www.DeepL.com/pro。
MCD4720 – C++基础 作业2和3 – 第一学期,2022年
作业提交 本项目将分两部分提交。评估的两个部分对成功完成项目同样重要,因此,在开始之前,你必须

Copyright By PowCoder代写 加微信 powcoder

了解这两个部分的要求。
 作业2:猎杀Wumpus(A部分:项目计划)到期日。2022
年4月8日,11:55PM(第7周) 分数。本作业的评分标准为100分。
权重。占该单元最终成绩的10%。 本作业是一个更大项目的第一部分,你将在作业中完成该项目。
3.这项任务包括你的项目规划文件。它将包括你的程序的需求和分析的细节,包括UML类图 。
本作业的目的是让你适应为作业3规划一个C++编程项目。该任务在本作业说明的后面有详 细说明,具体分数分配也是如此。
 作业3:猎杀Wumpus(B部分:C++项目实施)到期日。2022年5月6日,
11:55PM(第10周)
分数。本作业的评分标准为100分。
权重:占该单元最终分数的20%。
本作业包括你对项目的实施,如你的项目规划文件(作业2)中所概述的。
你的项目必须遵循你的项目计划,必须以Visual Studio项目的形式提交,包括所有头文件和 .cpp文件,以及任何适当的文本文件,以确保程序的编译和运行。
本作业由一个应用程序文件和相关的自定义类文件组成。这个任务的目的是让你适应设计
和实现基本的多类C++程序。任务在本作业说明的后面有详细说明,具体分数分配也是如 此。

C++的基础 作业2和3
• 通过提交特别考虑表或访问此链接: https://lms.monashcollege.edu.au/course/view.php?id=1331
• 或者,在没有特殊考虑的情况下,你每迟交一天(包括周末)就会损失5分的分数。逾期5天以上的提交将 不被接受。这意味着,如果你得到了Y分,只有Y-n*5会被计算在内,其中n是你延迟提交的天数。
• 除非特别考虑申请得到批准,否则超过14个日历日的评估项目将不被接受。这14天的时间框架不适用于 第12周到期的评估。
分数。本作业满分100分,占单元总分的10%。
抄袭。学术上要求你提交的作业必须是原创的。如果有任何证据表明你有抄袭(包括从网上来源而没有适当的归属)
、合作、从网站或教科书上粘贴的行为,整个作业、单元的分数可能为零,或者你可能被停课或被开除。莫纳什学院
关于抄 袭 、串通和作弊的政策可在此 查 阅 ,或 见 此 链 接: https://www.monashcollege.edu.au/ data/assets/pdf_file/0010/17101/dip-assessment-policy.pdf 进一步注意:当你被要求使用互联网资源来回答问题时,这并不意味着从网站上复制粘贴文字。用你自己的语言来写答
案,这样你对答案的理解就很明显了。引用任何资料来源,以示感谢。

C++的基础 作业2和3
提交说明。 该项目将分两部分提交。
 作业2–A部分:包括你的项目规划文件。 这份文件将包括你的程序结构的大纲和UML类图。
作业必须以单个Word或PDF文件的形式创建并提交给Moodle网站。该文件必须清楚地标明 你的姓名和学生编号,以便于评估和反馈。
你 的 文 件 必 须 命 名 如 下 。 “YourFirstNameLastNameID_A2.docx ” 或 “YourFirstNameLastNameID_A2.pdf”。
这个文件必须通过Moodle作业提交页面提交。
该文件应包含项目计划和 UML 图。你可以使用Microsoft Visio来绘制UML图,也可以使用
任何其他软件,只要在你提交的文件中包含这些图。 我们提供了明确的评估标准,但请注意你也将根据以下广泛的标准进行评估。
✓ 为整个项目提出的项目计划的细节。
✓ 创建准确和完整的UML图。
✓ 为整个项目应用坚实的面向对象的设计(OOD)。 ✓ 使用适当的命名惯例,遵循单位编程风格指南。
 作业3 – B部分:包括你的游戏项目的实施。 你的项目必须遵循你的项目计划,必须以Visual Studio项目的形式提交,包括所有头文件和
代码文件,以及任何适当的文本文件,以确保程序的编译和运行。 你可以在你喜欢的IDE中完成任务,但是你必须创建一个Visual Studio项目才能提交。你的
项目文件夹必须用你的名字和任务编号来标识,如YourFirstNameLastNameID_A3。 然后必须将整个项目文件夹压缩成一个zip文件,以便提交。该压缩文件必须命名为
“YourFistNameLastName_A3.zip”。这个压缩文件必须通过Moodle作业提交页面提交。 我们提供了明确的评估标准,但请注意你也将根据以下广泛的标准进行评估。
✓ 满足任务描述中描述的功能要求
✓ 显示出对C++概念的扎实理解,包括良好的做法
✓ 展示对与作业任务有关的特定C++概念的理解,包括面向对象的设计和实现以及指针的使 用。
✓ 遵循单位编程风格指南

C++的基础 作业2和3
✓ 创建尽可能高效和可扩展的解决方案
✓ 反思你所实施的设计是否合适,是否符合任务描述中的功能要求

C++的基础 作业2和3
注意!你提交的程序必须能够编译和运行。任何不能编译的提交程序都会被自动
判罚50分。这意味着你有责任在构建你的代码时不断地进行编译和测试。
注意!你提交的文件必须正确识别和提交(如上所述)。任何不符合要求的提交将 如果你有任何问题或担忧,请尽快联系你的导师。
自动收到20分的惩罚(在评分后应用)。对于作业3,你的Visual Studio项目应 包括所有.cpp和.h文件。

C++的基础 作业2和3
作业2:猎杀Wumpus(A部分)
在这项任务中,你要写一个动作冒险游戏,你的英雄人物将在一个复杂的洞穴中寻找并杀死臭名
昭著的Wumpus。你必须利用你的推理能力和隐蔽性来潜入Wumpus的位置,因为没有人在与
Wumpus面对面的时候还能活下来!你的角色将在一个复杂的洞穴中找到并杀死臭名昭著的 Wumpus。
在作业的A部分,你将专注于项目的规划。在B部分,你将专注于创建游戏中的各种互动对象,并 对玩家的互动进行编程。
“你好,年轻的冒险家,欢迎来到和平的希尔文谷。事实上,它曾经是和平的,直到 Wumpus,一种卑鄙的生物,在附近的岩洞里居住了下来。长期以来,它一直在恐吓山谷中
因此,村子里的长老们联合起来,要把名声和财富献给有价值的冒险家,让他把这个可怕的 怪物赶出山谷!你响应了号召,长老们告诉你,这个怪物潜伏在周围山丘的一个洞穴群中。 你已经响应了号召,长老们告诉你,这个怪物潜伏在周围山丘的一个洞穴群中。
你所要做的就是找到那个生物并将其杀死……很简单!祝你好运!!你会需要它的!”
基本游戏玩法 Wumpus生活在一个由20个小洞穴组成的地下洞窟中。每个洞穴都有3条隧道从它那里通向其他
洞穴。这里显示了一个洞穴群的例子(像一个被压扁的十二面体)。
除了Wumpus之外,还有几个可能是致命的危险。其中包括两个有无底洞的洞穴–如果你碰巧进 入了这些洞穴,你就会掉进坑里(并失去)。另外两个洞穴有超级蝙蝠–如果你绊倒在里面,你 会立即被蝙蝠带走,并被留在一个随机的洞穴里(至少可以说是很烦人)。
另一方面,Wumpus并不为这些危险所困扰(它有吸盘式的脚,而且体型太大,蝙蝠无法举起) 。它通常处于睡眠状态,只有当你误入它的巢穴或你的射击失误时才会醒来(武器的碰撞声在地 下确实回响很大)。如果你设法唤醒了Wumpus,它有75%的几率会移动到一个相邻的洞穴,或 者它可能决定(25%的几率)回到原来的地方睡觉。如果它移动到你所在的洞穴……你就变成了 午餐(而且你输了)。
进入洞穴时,你有一张地图,一盏油量有限的灯笼,它也设定了你的回合数(开始为100),你 的武器是一张弓和5支箭。每一回合,你可以使用4个标准罗盘方向之一[N、S、E、W](这也会

C++的基础 作业2和3
减少你的灯笼油)移动到邻近的洞穴,或者向洞穴[射击]射箭(希望能射中Wumpus并杀死它)。 当你移动或射击时,你的灯笼油将减少2到4之间的随机值。此外,我们还可以通过小规模的作
弊来查看Wumpus、坑和超级蝙蝠的位置。

C++的基础 作业2和3
WN S EN WN EN
WN EN WN EN EEE
SSSSSǞ Ǟ
图1:地图(上-下-左-右)。
当你进入一个新的洞穴时,如果你离Wumpus或危险只有一个洞穴,你会得到一条线索,指出从 你当前位置通往的一个(或可能更多)洞穴里有什么,但不是它所在的方向。
 无底洞:它们往往是漂流的,非常深,而且很容易掉进去!如果你掉进去,它们会直接杀 死你。如果你掉入其中,它们会直接杀死你。所以,请注意你的脚下!
 超级蝙蝠:这些蝙蝠的群落会发出可怕的喧闹声,而且对它们的领域有很强的保护作用。 如果你碰巧闯入它们的洞穴,它们会游走你并把你带到洞穴内的某个随机洞穴。
 Wumpus:一种恶心的野兽,闻起来非常可怕,而且经常睡觉。如果它醒着,而你在同一 个洞穴里,那么你就是它的午餐……这是一种真正可怕的死亡方式。Wumpus不受坑或蝙蝠 的干扰,因此可以在洞穴中的任何地方自由游荡。

C++的基础 作业2和3
 如果你成功射杀了Wumpus,你就赢了。
 如果你的灯笼没油了,或者你没箭了,或者你掉进坑里了,或者你最后和Wumpus在同一
个山洞里了,你就输了。你应该尽量避免这些事情! 注意:游戏的主题可以是你喜欢的任何环境,只要上述的主要元素等价物(Wumpus和危险、有
限的回合和资源)和一般游戏玩法都存在。 你应该包括一个标题和对洞穴的简要描述,以使游戏对玩家来说变得有趣和吸引。你可以使用你
在第一次作业中开发的技术来加载和显示这些数据。 项目计划
在你开始编码之前,对你的项目有一个明确的计划,对于按时和以最小的压力完成一个成功的项 目是至关重要的。因此,这项任务的一部分是确定你的项目中会有什么,以及你需要做什么来实 际开发它。
重要:你还必须阅读作业3的要求,以便能够完成作业2所要求的文件。 你必须提交的文件将包括以下内容。
✓ 对 “如何玩 “的描述
这将是你在游戏开场屏幕上显示的信息,以告知玩家他们需要做什么来玩并赢得游戏。不要只 是复制上面的游戏玩法描述,要做出你自己的描述。
注意:这个描述必须保存为一个文本文件,并在程序开始时读入你的游戏。如果玩家要求帮助 ,你也可以用它作为显示 “帮助 “的方便方法。
✓ 你的游戏的发展纲要 使用一个简单的大纲格式(编号或要点),说明该计划将有的主要行动,然后作为次要点,说
明你需要做的事情,以实现这一目标。 大纲结构应该包含你的游戏的所有元素,因为这是对你的程序开发方法的高级描述。你应该至
少包括以下标题,并在每个部分下提供发生的例子。
 游戏设置(游戏开始前发生的一切)。
 玩家的回合(在一个回合中发生的一系列事件)。
 处理玩家的输入(包括你的玩家可以使用的每个命令)。  向玩家提供反馈(针对玩家的互动)。

C++的基础 作业2和3
 游戏结束的条件(包括所有赢和输的条件)
 包括的附加功能,如果有的话–见任务3
 概述你所有游戏类的功能–见作业3 这里有一个例子可以让你开始你
的项目大纲。 o 游戏设置
 显示游戏规则的概况,让玩家知道如何做才能赢。 ▪ 从一个文本文件中读取该信息

C++的基础 作业2和3
 初始化游戏元素。
▪ 添加球员 – 询问球员的名字,设置默认变量
▪ 在初始化过程中会发生的所有其他事情,包括 • 创造危险和游戏世界
• 初始化其他游戏变量(在此列出)。 正如你所看到的,对于大纲,你只需要描述程序将采取的行动,而不是代码。这里的想法是给
你一个起点,当你开始写你的代码时,你可以用这个作为你需要包括的东西的检查清单。
✓ UML图示 UML图的设计是为了使你的程序结构更容易。如何创建它们将在课堂上讲
到,但一般的结构在这里显示 – 关于类的更多细节,请看作业3。 量) 你需要为你的游戏中包含的每个类绘制UML图–至少有一个玩家、位置和
应用程序(主)类。 ✓ 你的游戏环境地图
为了使导师更容易评分,请附上你的游戏环境地图。这可以是手绘的,也可以在其他应用程序 中创建(PowerPoint有一系列的形状和连接器,使绘图变得容易)。请看下面的例子。
图2:你将在你的文件中包括一个样本地图 11

C++的基础 作业2和3
作业2:评分标准[共100分]。
1. 要求和分析文件(项目计划)[70]。
1.1. 规则说明(你的游戏介绍) [8]
1.2. 大纲包括所有游戏功能(来自B部分)[12] 。
1.3. 每一节都被分解成逻辑任务[15] 。
1.4. 任务是按照逻辑顺序进行的[15] 。
1.5. 给出的任务描述提供了足够的细节[20] 。
2. UML图表[20]
2.1. 使用正确的结构(名称、属性、行为)[4] 。
2.2. 包括对公共(+)和私人(-)数据的正确指定[8] 。
2.3. 所有的变量和函数都有有意义的名称[8] 。
3. 报告结构[10]
3.1. 标题页 [1]
3.2. 目录 [1]
3.3. 页码[1]
3.4. 参考文献和文中引用 [2]
3.5. 语法、标点和拼写 [2] 。
3.6. 整体结构(布局)、表述和格式[3] 。

C++的基础 作业2和3
作业3:猎杀Wumpus(B部分)
你要实现你在作业2中开始的 “猎杀Wumpus “游戏,使用你之前提交的项目计划创建一个Visual Studio项目。
你完成的 “猎杀Wumpus “游戏必须证明以下几点。
✓ 你必须使用以下类来实现你的程序,这是一个最低限度,你可以包括更多的类(根据你的游
 玩家类:持有玩家的详细资料,包括他们的名字和他们携带的装备(箭头、灯笼[轮流]、
 地点类:保存游戏中各种地点的细节,包括描述、出口,以及是否有危险(你可以叫它
任何适合你的游戏的名字–洞穴、山洞、房间,等等)。
 应用程序文件:保存main()函数并控制游戏的整体流程。 你可以将其他相关的属性和行为纳入这些类别,如你的项目计划中所确定的。
✓ 玩家必须能够做到以下几点。
 指定一个在游戏开始时要求的名称,并在给出的反馈中使用。  将玩家的初始属性分配到所需的值(如简介中所述)。
 在游戏过程中更新和显示球员的统计数据(统计)。
 使用罗盘方向探索游戏地点。北、南、东、西
 向Wumpus射箭:射箭
 随时查看Wumpus、坑洞和超级蝙蝠的位置:作弊
 在任何时候(游戏中或游戏后)退出游戏。退出(QUIT
✓ 地点必须能够做到以下几点。
 从文本文件中加载,并在游戏开始时适当地存储。
 指定名称并初始化属性(如简介中所述)。
 访问和显示有关危险的数据,如果它是在该地点的话
 当玩家进入时,显示所有适当的信息(名称或编号,描述,出口,如果需要的话,其他信 息)。
✓ 游戏应用必须做到以下几点。
 在游戏开始时显示 “如何玩 “的信息
 用适当的属性/行为初始化玩家和危险物
 显示一个适当的、不乱的用户界面,在任何时候都向玩家提供相关信息  允许玩家使用罗盘方向探索岩洞的位置

C++的基础 作业2和3
 在进入每个地点时显示其信息(名称、出口方向等)。
 当玩家杀死Wumpus后,终止游戏(玩家获胜)。
 当玩家的灯笼里的油用完了(回合)或箭用完了,或者被Wumpus吃掉了,就会终止游戏
 在游戏结束时提供玩家的统计资料(成功或失败,库存等)。
 玩家应该能够在任何时候退出游戏。

C++的基础 作业2和3
计划反思 你还必须提供一份300字的书面反思,说明你的面向对象的设计,以及你认为它的实施效果如何。
你应该涵盖以下方面。
 讨论一下你为什么这样设计。 ▪ 你为什么要这样创建你的课程?
▪ 这怎么能反映出OO设计或方法呢?  讨论一下你的编码能力如何
▪ 突出你在尝试实施你的设计后发现的任何问题。
▪ 你是如何解决这些问题的?
 如果你再做一次这个项目,讨论一下你可能如何改变你的设计,使你的解决方案更容易实现
,更有效率,或者更有利于代码的重复使用。 这必须是一个Word或PDF文件,必须与你的*.sln包含在同一个文件夹中。
文件。你的文件必须以下列方式命名。”YourFirstNameLastNameID_A3.docx “或 “YourFirstNameLastNameID_A3.pdf” 。
额外功能 评分标准表明,你应该在此基础上做一些个别补充,以达到最后20%的分数。
以下是一个你可以包括的额外功能的列表,以及你可以为每个功能获得的最大分数[x]。你可以实 现列表中的一个或多个功能,但你的分数最多只能达到作业总分的20%或20分。
你的目标应该是在游戏中加入一些额外的创造性元素,以及先进的面向对象的设计元素或指针的 高级使用。
a. 玩家可以选择一个技能等级(例如:新手、猎人和猎人大师),从而修改游戏参数–洞穴 的数量、灯笼持续的回合数、他们拥有的箭的数量、放置在洞穴中的危险的数量、他们可 以购买和/或找到什么物品,等等。[2]
c. Wumpus可以在玩家采取的随机回合数之后移动一个洞穴,所以玩家必须在Wumpus移动
过于频繁之前找到它。[2]
d. 在游戏中加入一个主题,通过故事和给出的反馈融入到游戏中(例如:寻宝者,从公主那
里拯救龙,等等)。这可能会改变游戏结束的条件,例如,玩家不需要杀死Wumpus,而
是要找到一个或多个宝藏并返回村庄。你仍然必须按照简介中所描述的那样实施游戏的所 有其他要素。[3]

C++的基础 作业2和3
e. 创建一些不同的地图。你应该至少准备好3张不同的地图,在游戏开始时随机选择并加载其 中一张。你仍然必须按照简介中的描述实现游戏的所有其他元素。随时查看岩洞地图。地 图[6]。
f. 允许在玩家的要求下保存和恢复游戏。[4] g. 用ASCII艺术显示危险和/或游戏地点。[4]

C++的基础 作业2和3
h. 玩家可以在游戏开始前(例如:选择或从 “商店 “购买)收集有用的物品来帮助他们生存, 或者他们在探索游戏地点时发现它们。物品应该适合你的游戏主题:如爬出坑的绳子,迷 惑蝙蝠的哨子,装灯笼的额外油,等等。[5]
i. 箭是神奇的歪歪扭扭的箭,可以射穿1到5个洞穴。你可以通过输入SHOOT和1-5个你想让 箭走的方向的列表(SHOOT N、E、S、S、W)来瞄准。如果箭不能走那条路(即:没有 隧道),它就会从那个洞穴中随机选择一个出口,然后再进入下一个洞穴。如果箭射中了 Wumpus,你就赢了。如果箭射中你,你就输了。[7]
j. 创建漫游的对手(以适应你的主题–怪物、其他寻宝者等),玩家在探索游戏地点时必须
击败和/或避免。这些对手可以在游戏前随机生成,并随机放置在各个地点,也可以根据需
要随机生成(与技能水平、随机回合数等挂钩)。每个对手也应该有一个特殊的动作,当
他们遇到玩家时,他们会根据他们的 “角色 “类型来做(战斗、偷窃物品、交谈、交换物品 等等)。[10]
你当然不必为获得额外功能的分数而实施上述所有的措施。只要记住你能获得的最高分数是在[x] 中给出的。这取决于你!
对于那些好奇的人,你也可以探索以下链接。原文:
https://www.atariarchives.org/bcc1/showpage.php?page=247 Wumpus 2文章: https://www.atariarchives.org/bcc2/showpage.php?page=244 合并文章:https://www.atariarchives.org/morebasicgames/showpage.php?page=178

C++的基础 作业2和3
作业3:评分标准[总分最高100分] 该程序是否编译和运行?是或不是 如果不编译程序,将被罚50分。
1. 班级设计[15]
1.1. 玩家等级 [5]
1.1.1. 有一个适当的头文件[2]。
1.1.2. 要求数据成员和成员函数使用有意义的名称[1]。
1.1.3. 只包含与”玩家”有关的方面(没有与玩家不直接相关的数据成员或成员函数)[2]。
1.2. 地点类 [5]
1.2.1. 有一个适当的头文件[2]。
1.2.2. 要求数据成员和成员函数使用有意义的名称[1]。
1.2.3. 只包含与”委员会”有关的方面(没有与委员会不直接相关的数据成员或成员功能)[2]。
1.3. 游戏应用 [5]
1.3.1. 有一个适当的头文件[2]。
1.3.2. 有适当的变量和函数,使用有意义的名称[2]。
1.3.3. main()函数有适当的函数调用,以保持其不乱[1] 。
2.1. 游戏设置包括:显示 “如何玩 “的信息,初始化玩家和游戏变量,使用适当的数据创建危害,
2.2. 实现清晰而不杂乱的用户界面显示[5] 。
2.3. 成功实施基本的导航机制[5] 。
2.4. 成功实施危险及其对玩家的影响[5]
2.5. 成功实施拍摄Wumpus和正确的后果[5]
2.6. 行动过程的成功实施和显示给玩家的反馈[5] 。
2.7. 适当的结束游戏条件被触发[5]
3. 解决方案和代码的质量[20]
3.1. 该程序是否以有效和可扩展的方式执行功能?[12]

C++的基础 作业2和3
3.1.1. 适当地使用函数和函数调用[1]。
3.1.2. 适当地使用数据类型[1]
3.1.3. 适当地使用决定、循环和其他编程技术[2]
3.1.4. 适当地使用引用和/或指针[5]
3.1.5. 适当地使用良好的编程实践和技术[2]
3.1.6. 删除不相干的和多余的代码 [1] 。

C++的基础 作业2和3
3.2. 一个精心设计的OO程序是否已经实施?[4] 3.2.1. 包含适合任务简介的课程[3]。
3.2.2. 程序结构支持和OO设计[1]。
3.3. 是否适当地遵循了《编程风格指南》?[4] 3.3.1. 适当的注释和代码文档[2]。
3.3.2. 纠正*.h和*.cpp文件内的代码格式 [2]
4.1. 实施可由玩家选择的难度等级[2] 。
4.2. 根据游戏参数实施适当的评分系统[2] 。
4.3. Wumpus可以在一个随机的回合数后移动[2] 。
4.4. 将一个主题纳入故事和给予玩家的反馈[3] 。
4.5. 创建并实施一些不同的地图[3] 。
4.6. 允许在玩家的要求下保存和恢复游戏[4] 。
4.7. 使用ASCII艺术显示危险和/或游戏地点[4] 。
4.8. 玩家可以购买/收集有用的物品来帮助他们生存[5] 。
4.9. 使用神奇的弯弓箭,可以通过1-5个地点射出[7] 。
4.10. 创建并实现漫游对手,让玩家与之互动[10] 。
5.1. 讨论方案设计的动机[3] 。
5.2. 讨论设计的实施效果如何[3] 。
5.3. 讨论如果重新开始,他们会采取什么不同的做法[4] 。
5.4. 你实现了哪些额外的功能。
你有责任知道对你的期望是什么。如果你有任何不确定的地方,请尽早询问你的导师。在这里写 下任何问题和/或注释,以帮助你澄清你要做的事情。
抄袭的领导者。 注意:你的导师
可能会要求你在课堂上对部分作业进行编程,以确定你已经自己完
成了作业。如果你不能达到可接受的水平,你将被转到学科组。 20

C++的基础 作业2和3
课上面试。另外,你可能被要求在提交截止日期后向你的导师演示你的代码。如果
没有演示,整个作业将被评为零分。
注意:如果只提交.sln文件,将获得零分。

C++的基础 作业2和3
这里有一些屏幕截图的样本,可以帮助你开发你的用户界面。
图5:可以移动S E W

C++的基础 作业2和3
图6:可以移动N E W

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com