In: Computer Science
Hello, I need some assistance on completing this program in Pseudocode and in C++
Program 2: Buh-RING IT! For this assignment, you’re going to simulate a text-based Role-Playing Game (RPG). Design (pseudocode) and implement (source) for a program that reads in 1) the hero’s Hit Points (HP – or health), 2) the maximum damage the hero does per attack, 3) the monster’s HP and 4) the maximum monster’s damage per attack. When the player attacks, it will pick a random number between 0 and up to the maximum damage the player does, and then subtract that from the monster. The same thing happens when the monster attacks the hero, but damage is to the hero. The program should display rounds and the HP of the hero and monster each round. If the hero or monster dies, it should print that this happened and should NOT continue (i.e. no extra text). To learn how to create random numbers, see the appendix.
Sample run 1: Enter the hero's starting hit points: 50
Enter the damage the hero’s weapon does per strike: 20
Enter the monster's starting hit points: 40
Enter the monster's damage per strike: 15
====== ROUND 1 ======
Hero attacks for: 10
Monster has 30 HP left
Monster attacks you for: 1
You have 49 HP left
====== ROUND 2 ======
Hero attacks for: 18
Monster has 12 HP left
Monster attacks you for: 7
You have 42 HP left
====== ROUND 3 ======
Hero attacks for: 0
Monster has 12 HP left
Monster attacks you for: 14
You have 28 HP left
====== ROUND 4 ======
Hero attacks for: 18
Monster has -6 HP left
The monster dies and you earn 5 XP Battle ends...
Sample run 2:
Enter the hero's starting hit points: 50
Enter the damage the hero’s weapon does per strike: 10
Enter the monster's starting hit points: 40
Enter the monster's damage per strike: 20
====== ROUND 1 ======
Hero attacks for: 1
Monster has 39 HP left
Monster attacks you for: 6
You have 44 HP left
====== ROUND 2 ======
Hero attacks for: 5
Monster has 34 HP left
Monster attacks you for: 1
You have 43 HP left
====== ROUND 3 ======
Hero attacks for: 8
Monster has 26 HP left
Monster attacks you for: 8
You have 35 HP left
====== ROUND 4 ======
Hero attacks for: 4
Monster has 22 HP left
Monster attacks you for: 5
You have 30 HP left
====== ROUND 5 ======
Hero attacks for: 7
Monster has 15 HP left
Monster attacks you for: 1
You have 29 HP left
====== ROUND 6 ======
Hero attacks for: 7
Monster has 8 HP left
Monster attacks you for: 9
You have 20 HP left
====== ROUND 7 ======
Hero attacks for: 0
Monster has 8 HP left
Monster attacks you for: 14
You have 6 HP left
====== ROUND 8 ======
Hero attacks for: 4
Monster has 4 HP left
Monster attacks you for: 11
You have -5 HP left
You are killed by the monster and lose 10 gold.
Battle ends...
his assignment is about Repetition Structures.
For Pseudocode, here are key words to use
: · DO … WHILE – A loop that will always run at least once ·
FOR … ENDFOR – A loop that runs until certain criteria is met ·
WHILE … ENDWHILE – A loop that runs only while certain criteria is met ·
FOREACH … ENDFOREACH – A loop that runs over elements in a data structure · BREAK - "break out" of the current loop (or other structure) you're in and start immediately after the loop
CONTINUE - skip over the current iteration of the loop and move on to the next one
Below is the C++ code I hope that i have provided sufficient comments for your better understanding Note that I have done proper indentation but this code is automatically left alligned on this interface
#include<bits/stdc++.h>
using namespace std;
using namespace std;
int main()
{
int hp_hero, hp_monster;
int damage_hero, damage_monster;
int round_count;
int random; //To store random damage
srand(time(0)); //To generate different random numbers every time
cout<<"Using do while
loop"<<endl;
//Take users input
cout<<"Enter the hero's starting hit
points: ";
cin>>hp_hero;
cout<<"Enter the damage the hero’s
weapon does per strike: ";
cin>>damage_hero;
cout<<"Enter the monster's starting hit
points: ";
cin>>hp_monster;
cout<<"Enter the monster's damage per
strike: ";
cin>>damage_monster;
//using do while loop
round_count = 1;
do
{
cout<<"======
ROUND "<<round_count<<" ======"<<endl;
random =
rand()%(damage_hero+1);
cout<<"Hero
attacks for: "<<random<<endl;
hp_monster-=random;
cout<<"Monster has
"<<hp_monster<<" HP left"<<endl;
if(hp_monster<=0)
{
cout<<"The monster dies and you earn 5 XP Battle
ends..."<<endl;
break; //exit from the loop
}
random =
rand()%damage_hero+1;
cout<<"Monster
attacks you for: "<<random<<endl;
hp_hero-=random;
cout<<"You
have"<<hp_hero<<" HP left"<<endl;
if(hp_hero<=0)
{
cout<<"You are killed by the monster and lose 10
gold."<<endl;
break; //exit from the loop
}
round_count++;
}while(true);
cout<<"Using for
loop"<<endl;
//Take users input
cout<<"Enter the hero's starting hit
points: ";
cin>>hp_hero;
cout<<"Enter the damage the hero’s
weapon does per strike: ";
cin>>damage_hero;
cout<<"Enter the monster's starting hit
points: ";
cin>>hp_monster;
cout<<"Enter the monster's damage per
strike: ";
cin>>damage_monster;
//using for loop
round_count = 1;
for( ;true; ) //Apply the specified
condition
{
cout<<"======
ROUND "<<round_count<<" ======"<<endl;
random =
rand()%(damage_hero+1);
cout<<"Hero
attacks for: "<<random<<endl;
hp_monster-=random;
cout<<"Monster has
"<<hp_monster<<" HP left"<<endl;
if(hp_monster<=0)
{
cout<<"The monster dies and you earn 5 XP Battle
ends..."<<endl;
break; //exit from the loop
}
random =
rand()%damage_hero+1;
cout<<"Monster
attacks you for: "<<random<<endl;
hp_hero-=random;
cout<<"You
have"<<hp_hero<<" HP left"<<endl;
if(hp_hero<=0)
{
cout<<"You are killed by the monster and lose 10
gold."<<endl;
break; //exit from the loop
}
round_count++;
}
cout<<"Using while
loop"<<endl;
//Take users input
//Take users input
cout<<"Enter the hero's starting hit
points: ";
cin>>hp_hero;
cout<<"Enter the damage the hero’s
weapon does per strike: ";
cin>>damage_hero;
cout<<"Enter the monster's starting hit
points: ";
cin>>hp_monster;
cout<<"Enter the monster's damage per
strike: ";
cin>>damage_monster;
//using while loop
round_count = 1;
while(true)
{
cout<<"======
ROUND "<<round_count<<" ======"<<endl;
random =
rand()%(damage_hero+1);
cout<<"Hero
attacks for: "<<random<<endl;
hp_monster-=random;
cout<<"Monster has
"<<hp_monster<<" HP left"<<endl;
if(hp_monster<=0)
{
cout<<"The monster dies and you earn 5 XP Battle
ends..."<<endl;
break; //exit from the loop
}
random =
rand()%damage_hero+1;
cout<<"Monster
attacks you for: "<<random<<endl;
hp_hero-=random;
cout<<"You
have"<<hp_hero<<" HP left"<<endl;
if(hp_hero<=0)
{
cout<<"You are killed by the monster and lose 10
gold."<<endl;
break; //exit from the loop
}
round_count++;
}
}
Below is the screenshot of output
I have tried to explain it in very simple language and I hope that i have answered your question satisfactorily.Leave doubts in comment section if any