All pastes #2047352 Raw Edit

Mine

public text v1 · immutable
#2047352 ·published 2011-04-17 04:23 UTC
rendered paste body
#include <iostream>
#include <string>
#include <windows.h> //For the Sleep command.
using namespace std;
int main()
{

string playerName;
double speed;

//Ask for player name and give them a brief introduction to the game.
cout << "\nWhat is your name?: ";
	getline (cin, playerName);

cout << "\nEnter a game speed. 0 is the fastest speed, and 300 is the slowest speed. "; //Sets how fast the game will run. This is tied into the sleep function below.
	cin >> speed;

					if (playerName == "") //Prevents someone from not using a name.
					playerName = "John Doe"; 

					if (speed < 0) //Do not allow a negative game speed.
					speed = 0; 

					if (speed > 300) //Do not allow too slow of a game speed.
					speed = 300; 


		cout << "\nHello, " << playerName << ".";
			cout << "\nThe object of this game is to destroy the enemy ship";
			cout << "\nthat appears at the top of the screen. This enemy ship";
			cout << "\nhas more armor and firepower than you do, so be careful.";
			cout << "\n\n";
			cout << "\n-Ship Controls-";
			cout << "\nLeft and Right arrows: Move your ship left and right.";
			cout << "\nUp arrow: Fire a missile.";
			cout << "\nDown arrow: Pause the game.";
			cout << "\nPlease don't cheat by simply holding down the UP arrow. Be fair to the enemy.\n\n";

					system("pause"); //Press any key to continue.

//Set the initial health and X coordinates of the human and AI players.
	double aiHealth; //AI's health.
	double huHealth; //Human's health.
	double aiX; //AI's X coordinate.
		double aiXRand; //Used to hold the random value generated to modify the AI's X coordinate.
	double huX; //Human's X coordinate.

		aiHealth = 1000; //AI gets 1000 health at the start of the game.
			aiX = 20; //AI starts at the X coordinate of 20, the far side of the map.
		huHealth = 500; //Human gets 500 health at the start of the game.
			huX = 1; //Human starts at the X coordinate of 1, the beginning of our map.
					
while( aiHealth>0 && huHealth>0)  //Starts the loop that is the game. Similar to an IF statement, but repeats indefinitely until the condition is false.
{
	//Make the game sleep for a bit. This is where the Game Speed question above comes into play.
		Sleep(speed); 

	system("CLS"); //Clear the screen, otherwise the game just spams each frame on a new line.

	//Lets make the AI move.
	aiXRand = rand() % 3 + 1;//Gets a random number to modify the AI's X coordinate, allowing the AI to move. 3 + 1 just means it can have an outcome of 1 to 3.
		//Lets assign a value to these integers. 1=1, 2=0, and 3=-1.
			if (aiXRand == 1)
					aiXRand = 1; //Adds 1 to the X coordinate, in otherwords the AI could move right.
			if (aiXRand == 2)
					aiXRand = 0; // AI won't move.
			if (aiXRand == 3)
					aiXRand = -1; //Takes 1 from the X coordinate, in otherwords the AI could move left.


		aiX = aiX + aiXRand;//Now use the random number to modify the AI's current coordinate.

			//Lets make sure the AI cannot go out of bounds. I'm setting bounds to 20 characters across.
				if (aiX == 0)
					aiX = 1;
				if (aiX == 21)
					aiX = 20;

				//Sets the players to not launch a missile unless triggered to do so.
				double huLaunch;
				double aiLaunch;
				huLaunch = 0; //Reset Human missile trigger.
				aiLaunch = 0; //Reset AI missile trigger.

			//Let the human player move. Tells the computer what to do on the event of a key press.
				if (GetAsyncKeyState(VK_LEFT)) //Left arrow has been pressed, remove 1 from the Human x coordinate.
				{
				huX = huX - 1;
				}

				if (GetAsyncKeyState(VK_RIGHT)) //Right arrow has been pressed, add 1 from the Human x coordinate.
				{
				huX = huX + 1;
				}

				if (GetAsyncKeyState(VK_UP)) //Up arrow has been pressed. Trigger the Human to launch a missile.
				{
				huLaunch = 1; 
				}

				if (GetAsyncKeyState(VK_DOWN)) //DOWN arrow has been pressed, pause the game.
				{
				cout << "-Game Paused-\n";
				system("pause"); //Press any key to continue.
				}

				//Triggers the AI player to launch a missile based on a roll-the-dice style chance.
				aiXRand = rand() % 6 + 1; //Get a random number. Chance is 1 in 6 that a missile will be triggered.
				if (aiXRand == 5) //If outcome of the roll is 5, then triger the AI to launch a missile.
				{
				aiLaunch = 1;
				}

				//Detect human missile hit and remove health from the AI.
				if (aiX == huX && huLaunch == 1)
				{
				aiHealth = aiHealth - 50;
				}

				//Detect AI missile hit and remove health from the Human.
				if (aiX == huX && aiLaunch == 1)
				{
				huHealth = huHealth - 75;
				}

			//Let's make sure the human cannot go out of bounds either. I'm setting bounds to 20 characters across.
				if (huX == 0)
					huX = 1;
				if (huX == 21)
					huX = 20;



//Defining the game's sprites (character, avatar, basically the ingame visuals.)
//Create a ship at the AI's X coordinate.
	string aiFiller;

if (aiX == 1)   //Basically means if the X coordinate of the AI is equal to 1, then the AI's avatar is "^".
aiFiller = "^";

if (aiX == 2)
aiFiller = " ^";  //Adds whitespace to the avatar to give it the visual impression of movement as the X coordinate rises.

if (aiX == 3)
aiFiller = "  ^";

if (aiX == 4)
aiFiller = "   ^";

if (aiX == 5)
aiFiller = "    ^";

if (aiX == 6)
aiFiller = "     ^";

if (aiX == 7)
aiFiller = "      ^";

if (aiX == 8)
aiFiller = "       ^";

if (aiX == 9)
aiFiller = "        ^";

if (aiX == 10)
aiFiller = "         ^";

if (aiX == 11)
aiFiller = "          ^";

if (aiX == 12)
aiFiller = "           ^";

if (aiX == 13)
aiFiller = "            ^";

if (aiX == 14)
aiFiller = "             ^";

if (aiX == 15)
aiFiller = "              ^";

if (aiX == 16)
aiFiller = "               ^";

if (aiX == 17)
aiFiller = "                ^";

if (aiX == 18)
aiFiller = "                 ^";

if (aiX == 19)
aiFiller = "                  ^";

if (aiX == 20)
aiFiller = "                   ^";

//Create a ship at the Human's X coordinate.
	string huFiller;

if (huX == 1)
huFiller = "^";

if (huX == 2)
huFiller = " ^";

if (huX == 3)
huFiller = "  ^";

if (huX == 4)
huFiller = "   ^";

if (huX == 5)
huFiller = "    ^";

if (huX == 6)
huFiller = "     ^";

if (huX == 7)
huFiller = "      ^";

if (huX == 8)
huFiller = "       ^";

if (huX == 9)
huFiller = "        ^";

if (huX == 10)
huFiller = "         ^";

if (huX == 11)
huFiller = "          ^";

if (huX == 12)
huFiller = "           ^";

if (huX == 13)
huFiller = "            ^";

if (huX == 14)
huFiller = "             ^";

if (huX == 15)
huFiller = "              ^";

if (huX == 16)
huFiller = "               ^";

if (huX == 17)
huFiller = "                ^";

if (huX == 18)
huFiller = "                 ^";

if (huX == 19)
huFiller = "                  ^";

if (huX == 20)
huFiller = "                   ^";

//Let's make some fillers for the missiles.
string huMissile;
string aiMissile;

huMissile = ""; //Create no missile.
aiMissile = ""; //Create no missile. Variable Will not be used for now.

if (huX == 1 && huLaunch == 1)
huMissile = "|";

if (huX == 2 && huLaunch == 1)
huMissile = " |";

if (huX == 3 && huLaunch == 1)
huMissile = "  |";

if (huX == 4 && huLaunch == 1)
huMissile = "   |";

if (huX == 5 && huLaunch == 1)
huMissile = "    |";

if (huX == 6 && huLaunch == 1)
huMissile = "     |";

if (huX == 7 && huLaunch == 1)
huMissile = "      |";

if (huX == 8 && huLaunch == 1)
huMissile = "       |";

if (huX == 9 && huLaunch == 1)
huMissile = "        |";

if (huX == 10 && huLaunch == 1)
huMissile = "         |";

if (huX == 11 && huLaunch == 1)
huMissile = "          |";

if (huX == 12 && huLaunch == 1)
huMissile = "           |";

if (huX == 13 && huLaunch == 1)
huMissile = "            |";

if (huX == 14 && huLaunch == 1)
huMissile = "             |";

if (huX == 15 && huLaunch == 1)
huMissile = "              |";

if (huX == 16 && huLaunch == 1)
huMissile = "               |";

if (huX == 17 && huLaunch == 1)
huMissile = "                |";

if (huX == 18 && huLaunch == 1)
huMissile = "                 |";

if (huX == 19 && huLaunch == 1)
huMissile = "                  |";

if (huX == 20 && huLaunch == 1)
huMissile = "                   |";

if (aiX == 1 && aiLaunch == 1)
huMissile = "|";  //Purposely not set to aiMissile. 

if (aiX == 2 && aiLaunch == 1)
huMissile = " |";

if (aiX == 3 && aiLaunch == 1)
huMissile = "  |";

if (aiX == 4 && aiLaunch == 1)
huMissile = "   |";

if (aiX == 5 && aiLaunch == 1)
huMissile = "    |";

if (aiX == 6 && aiLaunch == 1)
huMissile = "     |";

if (aiX == 7 && aiLaunch == 1)
huMissile = "      |";

if (aiX == 8 && aiLaunch == 1)
huMissile = "       |";

if (aiX == 9 && aiLaunch == 1)
huMissile = "        |";

if (aiX == 10 && aiLaunch == 1)
huMissile = "         |";

if (aiX == 11 && aiLaunch == 1)
huMissile = "          |";

if (aiX == 12 && aiLaunch == 1)
huMissile = "           |";

if (aiX == 13 && aiLaunch == 1)
huMissile = "            |";

if (aiX == 14 && aiLaunch == 1)
huMissile = "             |";

if (aiX == 15 && aiLaunch == 1)
huMissile = "              |";

if (aiX == 16 && aiLaunch == 1)
huMissile = "               |";

if (aiX == 17 && aiLaunch == 1)
huMissile = "                |";

if (aiX == 18 && aiLaunch == 1)
huMissile = "                 |";

if (aiX == 19 && aiLaunch == 1)
huMissile = "                  |";

if (aiX == 20 && aiLaunch == 1)
huMissile = "                   |";




//Now output the battleground.

cout << "\nFlying Ace: " << aiHealth;    //Display the AI's name and health.
cout << "\n--------------------";
cout << "\n" << aiFiller;   		 //Display the AI's ship at his coordinate.

//Missile area. aiMissile intentionally left out. huMissile will pretty much do the job.

cout << "\n" << huMissile;  //If both the human and AI fire at once, one missile won't be shown. The AI missile will take priority.
cout << "\n" << huMissile;  //It's because I haven't thought of a way to show both at once without screwing up the spacings.
cout << "\n" << huMissile;  //Your missile will still work even if its not displayed.
cout << "\n" << huMissile;
cout << "\n" << huMissile;
cout << "\n" << huMissile;
cout << "\n" << huMissile;
cout << "\n" << huMissile;

cout << "\n" << huFiller;                           //Display the Human's ship at his coordinate.
cout << "\n--------------------";
cout << "\n" << playerName << ": " << huHealth;     //Display the Human's name and health.


   

} // End of the While statement. The While exits if a player dies (<=0 health remaining), otherwise the While statement starts over again.


//The game is now over. Find out who won and display the appropriate win/lose message.

if (huHealth > 0)
	cout << "\n\nYou have won the game. Good job.\n\n";

if (aiHealth > 0)
	cout << "\n\nYou have died. You suck at this game.\n\n";

system("pause"); //Press any key to continue.

return 0;
}