In: Computer Science
Write a program for a (very) rudimentary shooter "game". You are
the only shooter and you start with ammo of 10.
The one enemy doesn't shoot back and starts with health of
5. Code a custom function named shoot
that prints "Shot fired" and returns
True for a hit or False for a
miss. Generate a random 0 to assign False or 1 to assign True. In
the main function, use a while loop that runs the
shoot function until you run out of ammo, at which point you lose.
Report both hits and misses (see Sample Outputs). If your shot is a
hit as determined by the value returned by shoot, your code should
lower the enemy's health. If you are lucky, the health of the enemy
will be reduced to zero before you run out of ammo. If this
happens, report the enemy's demise and use the break
keyword to stop the loop. You have won.
Sample Output 1
Shot fired. Enemy was hit!
Shot fired. Shot missed
Shot fired. Enemy was hit!
Shot fired. Enemy was hit!
Shot fired. Enemy was hit!
Shot fired. Enemy was hit!
Enemy destroyed. You won!
GAME OVER
Sample Output 2
Shot fired. Shot missed
Shot fired. Enemy was hit!
Shot fired. Shot missed
Shot fired. Shot missed
Shot fired. Shot missed
Shot fired. Enemy was hit!
Shot fired. Shot missed
Shot fired. Shot missed
Shot fired. Shot missed
Shot fired. Enemy was hit!
You are out of ammo! You lose!
GAME OVER
Since the language was not specified, I wrote the program in C++. Please refer to the program given below:
#include<bits/stdc++.h>
using namespace std;
//this function is used to generate a random number between 0
and 1
bool shoot(){
int n;
cout<<"Shot fired.";
n = rand() % 2; //rand is a function that is used to
generate a random number
if(n)
return true; //if n = 1
else
return false; //if n = 0
}
int main(){
int ammo = 10, health = 5;
bool result;
srand(time(NULL)); //srand sets the starting point for
producing a series of pseudo-random integers
while(ammo){ //if ammo = 0 loop will end
result = shoot();
if(result == true){
cout<<"
Enemy was hit!"<<endl;
health--;
//decrement the health by 1 every time the enemy is hit
if(health ==
0){
cout<<"Enemy destroyed. You
won!"<<endl;
break;
}
}
else
cout<<"
Shot missed!"<<endl;
ammo--; //decrement ammo by 1 after
every iteration
}
if(health > 0) //if enemy is not dead
cout<<"You are out of ammo!
You lose!"<<endl;;
cout<<"GAME OVER";
return 0;
}