狠狠综合久久久久综合网址-a毛片网站-欧美啊v在线观看-中文字幕久久熟女人妻av免费-无码av一区二区三区不卡-亚洲综合av色婷婷五月蜜臀-夜夜操天天摸-a级在线免费观看-三上悠亚91-国产丰满乱子伦无码专区-视频一区中文字幕-黑人大战欲求不满人妻-精品亚洲国产成人蜜臀av-男人你懂得-97超碰人人爽-五月丁香六月综合缴情在线

COMP282代做、C++設計程序代寫

時間:2024-04-23  來源:  作者: 我要糾錯



COMP282 – The C++ Programming Language
University of Liverpool
Department of Computer Science
Assignment CA1 : C++ Console Application
1 Deadline
Monday 29th of April at 17:00
Feedback will be released on Monday the 20th of May (3 wks later).
2 Weighting
50%
3 Overview
You will create a small interactive console-based (i.e. text based) adventure game. The
project consists of 9 tasks. You are expected to use Visual Studio 2022 Community
Edition to build your game. You should complete the tasks in order, as some tasks
assume that previous tasks have been done. Each task builds upon the previous one.
Do as much as you can and then package your project for submission. Your solution
should demonstrate your knowledge of C++. Work alone: You must work alone on the
assignment. Plagiarism checks will be run. If you notice any typos or mistakes in the
assignment that I may have missed, or if you feel something is unclear, please contact me
(andyrox@liverpool.ac.uk) or post a question in the Canvas COMP282 Discussion page
(there is a specific discussion relating to clarification of the assignments).
4 Submission Requirements
I will upload a separate document to Canvas describing submission requirements but it is
likely that you will upload your cpp and h files to Codegrade. I will also upload a rubric
describing the mark scheme. Marking will be a combination of running automatic tests
and manually reviewing the code.
4.1 Overview: Fantasy Quest Adventure Game
The assignment is to create a basic command-line game using C++ and organise game
structure using OOP methods.
The game has a fantasy theme, in a style similar to Dungeons and Dragons, consisting
1
of a player that can navigate a series of connected locations (using commands North,
South, East, West or N,S,E,W). The player can collect items and engage in combat with
monsters. The player’s score in the game increases when they defeat a monster. The
objective of the game is to achieve a high score (by defeating monsters) and to defeat
the ’end of level boss’. There should be some introductory text at the start of the game
to set the scene, and the player can leave the game at any point by typing quit. The
player can type inventory or inv to see a list of all the items they hold. The player can
type fight to engage in combat with a monster, or type collect to collect all items in
the current room.
You must use the specified class, method and variable names to ensure your code can
be tested. You will get marks for using STL containers and iterators to store and manipulate the various objects in the game. You are free to add further methods/ variables/
functions as you wish. Be sure to add comments your code, briefly explaining the purpose
and functionality of classes, methods, and significant blocks of code. Also remember to
implement error handling. In the descriptions of programming elements below, I have
deliberately not specified function parameters and return types - this is for you to specify.
Similarly I have not specified where pointer use would be appropriate.
I have specified most of the monsters/locations/objects - this is so that the gameplay can
be tested.
The assignment is organised into tasks.
4.2 Task 1 - create game classes
The following classes should be written:
• Character The Character class defines characters in the game. It should have the
following methods: setName, getName which will get or set the name of the
character, and getHitPoints and setHitPoints, which get or set the hitpoints, or
‘health rating’ of the character.
• Monster Monster should be derived from Character.
• Player Player should be derived from Character. It should have a member variable
score (an integer that keeps track of the player’s score in the game), which is set and
read using setScore and getScore, and three containers weapons, potions and
treasures which hold the player’s items. It should also have the private member
variable currentLocation which represents the player’s current location. This can
be set using setCurrentLocation and read using getCurrentLocation.
• Item Item should have the following methods: getName, setName, which will
set or get the name of the item.
• Potion Potion should be derived from Item. It should have a member variable
strength (integer), which should be accessible via getStrength and setStrength.
• Weapon Weapon should be derived from Item. It should have a member variable
power (integer), which should be accessible via getPower and setPower.
2
• Treasure Treasure should be derived from Item. It should have a member variable
value (integer), which should be accessible via getValue and setValue.
• Location A Location object represents a place within the game. It should hold
data including name and description (accessible via member functions setName,
getName, setDescription, getDescription). It should be possible for the programmer to populate a location object with other game entities, using the following
member functions: addExit (creates an exit, either N, S, E or W, leading to another location object), addMonster (puts a specific monster at this location),
delMonster (deletes monster), getExits (displays a list of exits to the player),
addItem (places a specific item at this location). Function overloading should
be used on the addItem method so that addItem handles adding potions, treasures or weapons to the location. Member variables should include the containers
weapons, potions and treasures which hold the player’s items. And exits, which
holds the exits leading to other location objects.
4.2.1 File Structure
The File Structure should be according to good C++ practice, with declarations in the .h
files and implementations in the .cpp files. However for simple one or two line functions,
those implementations can be kept in the .h file, allowing the compiler to inline them and
reduce function call overhead. For this assignment we will also keep derived classes in the
same files as their parent classes. AdventureGame.cpp should have the main() function.
Files are:
• Character.cpp
• Character.h
• Item.cpp
• Item.h
• Location.cpp
• Location.h
• AdventureGame.cpp
4.3 Task 2 - Build the game world
Build the game by creating location objects and linking them together using the objects’
exits member variable. Create 12 location objects that are linked to each other according
to the map shown.
Here are the location names:
cave, temple, dungeon, castle, clearing, hall, garden, library, forest, house, ruins, field.
3
Set each location object’s description (you can put whatever you want here) and a name
to be displayed after “you are” - e.g. ‘ruins’ might be given the name ‘in some ruins’.
After building the game, set the player’s current location to the clearing - that will be
the start location of the game.
Create a game loop in the main() function. At this stage the game loop should simply
get a command from the player, and then describe the location again. If the user types
quit, the game should display the user’s score (which at this stage will be 0), and end.
4.4 Task 3 - Room Navigation
Modify the game loop so that it now tells the user where they are, and what exits are
available (N, S, E or W).
If the user types a direction (N, S, E or W, or North, South, East or West, or n,s,e
or w), the game should work out if an exit exists in that direction, and if it does, the
current location should change to that location.
If an exit does not exist, the game should tell the user this, and remain at the current
location.
By the end of this task the user should be able to navigate around the game, and quit
the game if necessary.
4.5 Task 4 - Adding Items
Create some items (see below).
Treasures: bag of coins, treasure chest, emerald, ruby, sapphire, diamond, gold ring.
Potions: Blue Healing Potion, Purple Healing Potion, Red Healing Potion.
Weapons: dagger, sword, crossbow, club, stick.
Use addItem to add these items (weapons, potions, treasures) to the locations in the
game as follows:
4
Change the game loop so that it announces what items are in the location, if any.
This information should be obtainable from the player’s current location.
If the user types collect, all of the items in the location should be collected by the
user. If the user types inv or inventory they should see a list of all their items, in the
three groups (Potions, Treasures, Weapons). Sort the lists alphabetically. If the user
types drink, all the healing potions in the user’s inventory should be deleted, and their
‘strength’ points should be added to the player’s HitPoints.
By the end of this task the user should be able to collect all items from rooms, drink the
healing potions, and list the items in the inventory.
4.6 Task 5 - Adding Monsters
Use addMonster to add monsters to the rooms.
Here are the monster names:
vampire, zombie, dragon, goblin, spectre, banshee, ghoul, orc.
Arrange the monsters in the game as follows, with the following hitpoint values:
Change the game loop so that it announces the presence of a monster in a room.
Note that the house has two monsters.
By the end of this task there should be monsters in locations.
5
4.7 Task 6 - Combat
By the end of this task it should be possible to engage in combat with the monsters/enemies
according to the rules of combat, by typing fight.
Create a function called rollDice which will return a random integer from 1-6.
Create a member function of the Player class, called combat, that will conduct combat
with between the player and any enemies in the current location. The rules of combat
are as follows:
1. Both Monster and Player have a hitpoint value. Once a character’s hitpoint value
reaches 0, that character is defeated.
2. The Monster strikes first.
3. Their damage to the player is determined by calling rollDice and multiplying the
result by 2. (So result can be 0-12).
4. The player’s hitpoint total is reduced by the damage inflicted by the Monster.
5. The player then strikes back - rollDice is called, and this is modified by the weapon
with the highest power rating. So if the player has a sword with a power of 10, 10
is added to the dice roll to determine damage done to the monster.
6. This cycle continues until either the player or the enemy reaches 0 hitpoints.
7. After each round, the hitpoints of each combatant are displayed to the user.
8. If there is more than one monster in the room, only one monster is engaged in
battle when the user types fight - the user needs to type it again to fight the
other monster. The monster order should be strongest first - so the player fights
the monster with the higher hitpoints first.
9. The Character class should have the member function takeHit added to it, which
will decrease the character’s hitpoints by the given amount.
10. If the player is defeated, the player’s score is shown and the game ends.
4.8 Task 7 - The Boss
Create a new Player character called ‘boss’, give it a name and description, and add the
boss to the game. Put the boss in the cave. Modify the game loop so that when the
boss is defeated, the game ends.
4.9 Task 8 - Game Enhancements
Add further items to the game:
Treasures: Cup, Pearl, Key, Book
Potions: Green Healing Potion
You can decide their value, and strength in the case of the healing potion.
Put these items into the possession of some of the monsters. Make sure that the ghoul
6
has the key.
Modify the game so that when a monster is defeated, their items become available in the
room for the player to collect.
4.10 Task 9 - Implementing Armour
Create a new child class of Item called Armour.
Add at least 5 examples of armour into the game. Some examples:
ringmail, chainmail, shield, breastplate, helmet, gauntlet.
As well as name and description, the Armour class should have a member variable called
protection. You can decide values for this. But make sure that you put the gauntlet, with a protection of 2, in the library. Armour reduces the effect of damage
inflicted on the character. All Character objects should have the ability to use armour, so
it should be implemented at the Character (parent class) level. All armour items should
be listed to the user when they type inv or inventory. Modify the combat rules so
that during combat, damage inflicted on the player by an enemy is reduced by a random
amount between 0 and the total value of protection of all the armour in the player’s

請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp

標簽:

掃一掃在手機打開當前頁
  • 上一篇:FIT5225 代做、代寫 java,c++語言程序
  • 下一篇:代寫DTS101TC、代做Python設計編程
  • 無相關信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區
    昆明西山國家級風景名勝區
    昆明旅游索道攻略
    昆明旅游索道攻略
  • NBA直播 短信驗證碼平臺 幣安官網下載 歐冠直播 WPS下載

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    狠狠综合久久久久综合网址-a毛片网站-欧美啊v在线观看-中文字幕久久熟女人妻av免费-无码av一区二区三区不卡-亚洲综合av色婷婷五月蜜臀-夜夜操天天摸-a级在线免费观看-三上悠亚91-国产丰满乱子伦无码专区-视频一区中文字幕-黑人大战欲求不满人妻-精品亚洲国产成人蜜臀av-男人你懂得-97超碰人人爽-五月丁香六月综合缴情在线
  • <dl id="akume"></dl>
  • <noscript id="akume"><object id="akume"></object></noscript>
  • <nav id="akume"><dl id="akume"></dl></nav>
  • <rt id="akume"></rt>
    <dl id="akume"><acronym id="akume"></acronym></dl><dl id="akume"><xmp id="akume"></xmp></dl>
    www.av片| 午夜宅男在线视频| 国产大尺度在线观看| 污污的网站免费| 自拍偷拍21p| 欧美一级xxxx| 奇米777在线视频| 午夜久久久久久久久久久| 一区二区久久精品| 日本老太婆做爰视频| 在线观看17c| www精品久久| www.中文字幕在线| 美女黄色片视频| 亚洲综合在线一区二区| 欧美美女黄色网| 国产91在线免费| 一道本视频在线观看| 亚洲欧美国产中文| 日本a在线天堂| 精品www久久久久奶水| wwww.国产| 7777在线视频| 十八禁视频网站在线观看| 99sesese| 蜜臀av无码一区二区三区| 五月婷婷狠狠操| 国产911在线观看| 成人午夜视频免费在线观看| 性生活免费在线观看| 中文字幕在线乱| 乱子伦视频在线看| 成人高清dvd| 北条麻妃av高潮尖叫在线观看| 欧美激情国内自拍| 欧美韩国日本在线| 丰满女人性猛交| 日韩 欧美 高清| 成人在线免费观看网址| 久久久久免费精品| 超碰人人爱人人| 中文字幕在线观看日 | 国产三级精品三级在线| 午夜精品久久久久久久无码 | 黄色一级片免费的| 黄色一级视频片| 成年人免费观看的视频| 欧在线一二三四区| 天天夜碰日日摸日日澡性色av| 亚洲一二区在线观看| 人人干人人视频| 欧美色图另类小说| 国产精品一线二线三线| 丰满女人性猛交| 午夜天堂在线视频| av中文字幕网址| 牛夜精品久久久久久久| 日本成年人网址| 免费在线观看亚洲视频| 日韩人妻一区二区三区蜜桃视频| 在线观看免费不卡av| 亚洲高清免费在线观看| 国产天堂在线播放| 蜜臀久久99精品久久久酒店新书| 国产免费黄色av| 波多野结衣家庭教师在线播放| 国产精品久久久久9999爆乳| 日本精品福利视频| 嫩草影院中文字幕| 黄色一级片国产| 毛片在线播放视频| 欧美日韩在线一| 欧美日韩一区二区在线免费观看| 国产在线观看福利| 色一情一乱一伦一区二区三区日本| 国产亚洲精品网站| 噼里啪啦国语在线观看免费版高清版| 亚洲国产精品久久久久婷蜜芽| 久久久久久久久久久99| 精品免费国产一区二区| 精品久久久99| 亚洲区成人777777精品| 亚洲理论电影在线观看| 97超碰青青草| 成人黄色一级大片| 亚洲色成人www永久在线观看| 日韩免费视频播放| 538任你躁在线精品免费| 在线观看岛国av| 很污的网站在线观看| 亚洲一区二区三区四区五区xx| 五月天婷婷影视| 精品视频在线观看一区| 欧美激情第3页| 欧美成人高潮一二区在线看| 亚洲色图38p| www.在线观看av| 国产xxxxx视频| 国产精品www在线观看| 亚洲一二三区av| 国产色一区二区三区| 天天干天天操天天做| 91成人综合网| 不卡中文字幕在线| 欧美一级黄色片视频| 国产91沈先生在线播放| 久久久精品三级| 男人天堂av片| 伊人五月天婷婷| 国产免费视频传媒| jizzjizz国产精品喷水| 国产又粗又爽又黄的视频| 久久国产乱子伦免费精品| 日韩免费在线观看av| 免费精品99久久国产综合精品应用| 欧美一区二区三区爽大粗免费| 婷婷视频在线播放| 国产精品v日韩精品v在线观看| 尤物av无码色av无码| 亚洲色婷婷久久精品av蜜桃| 国产探花在线看| 蜜桃免费在线视频| 国产女大学生av| 精品国产一二三四区| 激情五月婷婷六月| 黄色网在线视频| 好吊色这里只有精品| 91亚洲一区二区| 国产又粗又长又爽又黄的视频| 亚洲精品一二三四五区| 久久久久国产精品熟女影院| 97成人在线观看视频| 免费在线观看日韩视频| 欧美三级午夜理伦三级| 国产超级av在线| 国模杨依粉嫩蝴蝶150p| 国产av无码专区亚洲精品| 国产日韩一区二区在线观看| 亚洲自偷自拍熟女另类| 成人精品小视频| 日本爱爱免费视频| 免费精品99久久国产综合精品应用| 在线看的黄色网址| 91丝袜超薄交口足| 青青视频免费在线观看| 日本福利视频网站| 极品粉嫩国产18尤物| 久久久久人妻精品一区三寸| 国自产拍偷拍精品啪啪一区二区| www.爱色av.com| 少妇激情一区二区三区| 99精品视频网站| 黄色成人在线看| 欧美日韩一区二区三区69堂| 男插女免费视频| 青草青青在线视频| 婷婷六月天在线| 国产91在线亚洲| 国产精品拍拍拍| 久久久天堂国产精品| 各处沟厕大尺度偷拍女厕嘘嘘| av污在线观看| 国产69精品久久久久999小说| 亚洲精品乱码久久久久久自慰 | 怡红院av亚洲一区二区三区h| 中文字幕在线观看第三页| 女同性恋一区二区| 男人搞女人网站| 成人免费播放器| 三级黄色片免费看| 韩国中文字幕av| 成人性免费视频| 日本道在线视频| 五月婷婷之综合激情| 国产日产欧美一区二区| 黄色一级二级三级| 日韩视频免费播放| 免费看黄色a级片| 欧美成人福利在线观看| 久草青青在线观看| 日韩一级免费看| 黄色a级三级三级三级| 成年人小视频网站| 国产一区二区网| 国产在线观看欧美| 美国av在线播放| 97人人爽人人| 日本中文字幕二区| 亚洲欧美国产日韩综合| 久久国产亚洲精品无码| r级无码视频在线观看| 黄色网址在线免费看| 亚洲天堂一区二区在线观看| 中文字幕成人在线视频| 别急慢慢来1978如如2| 无码无遮挡又大又爽又黄的视频| 激情五月宗合网| 亚洲熟妇无码一区二区三区| 久久久久免费看黄a片app| 国产在线播放观看|