Neat Text-Based RPG C++ Console

restrictment 0 Tallied Votes 6K Views Share

Pretty neat text-based RPG that I made. Currently my first game.

#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>
//used to maximize screen
#pragma comment(lib,"kernel32.lib")
#pragma comment(lib,"user32.lib")

using namespace std;

int main()
{
	//tells screen to maximize
	HWND hWnd = GetConsoleWindow();
	ShowWindow(hWnd,SW_MAXIMIZE);
	cout << "********************************************************************************";
	cout << "****************************** ***************** *******************************";
	cout << "****************************  *******************   ****************************";
	cout << "*************************   ************************   *************************";
	cout << "**********************    ****************************    **********************";
	cout << "********************     ******************************      *******************";
	cout << "******************      ********************************        ****************";
	cout << "****************       ******    **   *     *   *   ******        **************";
	cout << "**************        ******* **  * *** * * * * * * *******         ************";
	cout << "*************         ******* *** *  ** * * * * * * ********         ***********";
	cout << "************          ******* *** * *** * * * * * * ********         ***********";
	cout << "***********           ******* **  * *** * * * * * * ********          **********";
	cout << "***********            ******    **   * *** *   * * *******           **********";
	cout << "***********    *        **********************************      *     **********";
	cout << "***********     **   *    ******************************    *  **    ***********";
	cout << "************     **   *   *****************************   **  **     ***********";
	cout << "*************  * ***  ** ******************************* ******* *  ************";
	cout << "********************************************************************************";
	cout << "********************************************************************************";
	cout << "*************************     ***************************    *******************";
	cout << "****************************    ***********************   **********************";
	cout << "*******************************  ********************   ************************";
	cout << "********************************* ******************  **************************";
	cout << "******************** ************* **************** ************* **************";
	cout << "*********************    ********** ************** **********    ***************";
	cout << "*********************        ******* ************ *******        ***************";
	cout << "********************       ********** ********** **********       **************";
	cout << "********************      ******  **** ******** ***** ******      **************";
	cout << "*********************      ****     ***************    ****      ***************";
	cout << "***********************              *************            ******************";
	cout << "************************************  **********  ******************************";
	cout << "********************************************************************************";
	cout << "********************************************************************************";
	cout << "********************************************************************************";
	cout << "******************************* ********************** *************************";
	cout << "********************************* ****************** ****** ********************";
	cout << "************************** ******* **************** ******** *******************";
	cout << "************************* ***  **** ************** *****  *** ******************";
	cout << "****************************     *********************     *********************";
	cout << "******************************    *******************    ***********************";
	cout << "******************  ************   *****************   *************************";
	cout << "*****************  * ************  *****************  ************ *************";
	cout << "************** *  *** ************* *************** ************* * * **********";
	cout << "***************  ***** *****  ********************************** ***  **********";
	cout << "*************** ******* ***  * ********************* ********** **** ***********";
	cout << "************************ *  *** *******************  ********* *****************";
	cout << "*************************  ***** ************ ****  * ******* ******************";
	cout << "************************* ******* ********** * **  *** ***** *******************";
	cout << "************************* ******** ***** ** ***   ***** *** ********************";
	cout << "*********************************** ***  * **** ******** * *********************";
	cout << "************************************ * *  *************** **********************";
	cout << "************************************* *** **************************************";
	cout << "************************************* ******************************************";
	cout << "********************************************************************************";
	cout << "********************************************************************************";
	cout << "********************************************************************************";
	cout << "********************************************************************************";
	cout << "********************************************************************************";
	Beep(300,100);
	Beep(100,100);
	Beep(300,100);
	Beep(100,300);
	Beep(300,100);
	Beep(150,100);
	Beep(300,100);
	Beep(100,100);
	Beep(300,100);
	Beep(150,300);
	Beep(350,100);
	Beep(200,100);
	Beep(250,100);
	Beep(150,100);
	Beep(350,100);
	Beep(200,300);
	Beep(300,100);
	Beep(200,100);
	Beep(300,100);
	Beep(150,100);
	Beep(300,100);
	Beep(120,300);
	Beep(300,100);
	Beep(190,100);
	Beep(300,100);
	Beep(140,100);
	Beep(300,100);
	Beep(170,300);
	Beep(360,100);
	Beep(130,100);
	Beep(300,100);
	Beep(120,100);
	Beep(300,100);
	Beep(190,300);
	Beep(300,100);
	Beep(150,100);
	Beep(300,100);
	Beep(150,100);
	Beep(300,100);
	Beep(100,300);
	Beep(150,200);
	Beep(200,200);
	Beep(250,300);

	system("cls");

	int person, opponent, atk, asuccess, msuccess, game = 1, counter1=1, level = 1, atr, a, b, c = 0, d, decision, item;
	//opponent
	int attackop, defenseop, speedop, healthop = 100, opac, expo = 0, moneyo = 0;
	//user
	int magicus, attackus, defenseus, speedus, healthus = 100, exp = 0, money = 0, levelup = 200;

	//names
	string nameus, nameop;
	char exit;
	//classes
	int healus = 0;
	do{
		cout << "(1)\n***************\nThe Wizard:\n attack - 30\n defense - 40\n magic - 60\n speed - 60\n***************" << endl << endl;
		cout << "(2)\n***************\nThe Knight:\n attack - 50\n defense - 75\n magic - 40\n speed - 30\n***************" << endl << endl;
		cout << "(3)\n***************\nThe Berzerker:\n attack - 60\n defense - 50\n magic - 30\n speed - 50\n***************" << endl << endl;
		cout << "(4)\n***************\nThe Banshee:\n attack - 40\n defense - 40\n magic - 50\n speed - 65\n***************" << endl << endl;
		cout << "(5)\n***************\nThe Goblin:\n attack - 60\n defense - 65\n magic - 30\n speed - 40\n***************" << endl << endl;
		cout << "(6)\n***************\nThe Demon:\n attack - 65\n defense - 70\n magic - 25\n speed - 30\n***************" << endl << endl;
		cout << "Which Class would you like to be?: ";
		cin >> person;
		if((person > 6)&&(person != 666))
		{
			system("cls");
			cout << "You must enter an integer between 1 and 6!!!!\n\n";
			system("pause");
			system("cls");
		}
		if(person == 666)
		{
			system("cls");
			cout << "Muahahahaha!! You have unleashed Satan!!!";
			cout << "\n***************\nSatan:\n attack - 100\n defense - 100\n magic - 100\n speed - 100\n***************" << endl << endl;
			Beep(300,200);
			Sleep(100);
			Beep(200,200);
			Sleep(100);
			Beep(100,200);
			Sleep(100);
			Beep(100,100);
			Beep(125,50);
			Beep(150,50);
			Beep(125,50);
			Beep(100,200);
			system("pause");
			system("cls");
		}
	}while((person > 6)&&(person != 666));
	//information for user
	switch(person)
	{
	case 1:
		attackus = 30, defenseus = 40, magicus = 60, speedus = 60, nameus = "Wizard";
		break;
	case 2:
		attackus = 50, defenseus = 60, magicus = 40, speedus = 40, nameus = "Knight";
		break;
	case 3:
		attackus = 60, defenseus = 50, magicus = 30, speedus = 50, nameus = "Berzerker";
		break;
	case 4:
		attackus = 40, defenseus = 40, magicus = 50, speedus = 65, nameus = "Banshee";
		break;
	case 5:
		attackus = 60, defenseus = 65, magicus = 30, speedus = 40, nameus = "Goblin";
		break;
	case 6:
		attackus = 65, defenseus = 70, magicus = 30, speedus = 25, nameus = "Demon";
		break;
	case 666:
		attackus = 100, defenseus = 100, magicus = 100, speedus = 100, nameus = "Satan";
		break;
	default:
		cout << "No One";
	}
	do{
		do{
			system("cls");
			cout << "Hello, " << nameus << ", what would you like to do?\n\n";
			cout << "(1)\n**********\nGo to the Arena\n**********\n\n";
			cout << "(2)\n**********\nGo to the Armory\n**********\n:";
			cin >> decision;
			switch(decision)
			{
			case 1:
				int random3, random4, random5;
				srand ((unsigned)time(0));
				random3 = (rand() % 4) + 1;
				random4 = (rand() % 4) + 1;
				random5 = (rand() % 4) + 1;
				if(healthop == 0)
					healthop = 100;
				system("cls");
				do{
					cout << "Welcome to the arena, " << nameus << ", which opponent would you like to face?" << endl;
					d = (level * -1);
					switch(random3)
					{
					case 1:
						if(level <= 1)
						{
							cout << "(" << d + 2 << ")\n***************\nThe Tree(lvl 1):\n attack - 0\n defense - 20\n speed - 0\n***************\n"; 
							cout << endl;
						}
						break;
					case 2:
						if(level <= 1)
						{
							cout << "(" << d + 2 << ")\n***************\nThe Rock(lvl 1):\n attack - 0\n defense - 30\n speed - 0\n***************\n"; 
							cout << endl;
						}
						break;
					case 3:
						if(level <= 1)
						{
							cout << "(" << d + 2 << ")\n***************\nThe Computer(lvl 1):\n attack - 0\n defense - 10\n speed - 0\n***************\n"; 
							cout << endl;
						}
						break;
					case 4:
						if(level <= 1)
						{
							cout << "(" << d + 2 << ")\n***************\nThe Book(lvl 1):\n attack - 0\n defense - 5\n speed - 0\n***************\n"; 
							cout << endl;
						}
						break;
					default:
						cout << "Can't Happen";
					}
					switch(random4)
					{
					case 1:
						if(level <= 2)
						{
							cout << "(" << d + 3 << ")\n***************\nThe Rat(lvl 2):\n attack - 30\n defense - 20\n speed - 30\n***************\n"; 
							cout << endl;
						}
						break;
					case 2:
						if(level <= 2)
						{
							cout << "(" << d + 3 << ")\n***************\nThe Cat(lvl 2):\n attack - 40\n defense - 20\n speed - 30\n***************\n"; 
							cout << endl;
						}
						break;
					case 3:
						if(level <= 2)
						{
							cout << "(" << d + 3 << ")\n***************\nThe Dog(lvl 2):\n attack - 45\n defense - 25\n speed - 30\n***************\n"; 
							cout << endl;
						}
						break;
					case 4:
						if(level <= 2)
						{
							cout << "(" << d + 3 << ")\n***************\nThe Bat(lvl 2):\n attack - 30\n defense - 20\n speed - 35\n***************\n"; 
							cout << endl;
						}
						break;
					default:
						cout << "Can't Happen";
					}
					switch(random5)
					{
					case 1:
						if(level <= 3)
						{
							cout<< "(" << d + 4 << ")\n***************\nThe Mage(lvl 3):\n attack - 65\n defense - 35\n speed - 45\n***************\n";
							cout << endl;
						}
						break;
					case 2:
						if(level <= 3)
						{
							cout<< "(" << d + 4 << ")\n***************\nThe Jackal(lvl 3):\n attack - 60\n defense - 50\n speed - 50\n***************\n";
							cout << endl;
						}
						break;
					case 3:
						if(level <= 3)
						{
							cout<< "(" << d + 4 << ")\n***************\nThe Crusader(lvl 3):\n attack - 65\n defense - 55\n speed - 45\n***************\n";
							cout << endl;
						}
						break;
					case 4:
						if(level <= 3)
						{
							cout<< "(" << d + 4 << ")\n***************\nThe Wolf(lvl 3):\n attack - 55\n defense - 45\n speed - 55\n***************\n";
							cout << endl;
						}
						break;
					default:
						cout << "Can't Happen";
					}
					switch(random3)
					{
					case 1:
						if((level <= 4)&&(level >= 2))
						{
							cout<< "(" << d + 5 << ")\n***************\nThe Assassin(lvl 4):\n attack - 75\n defense - 35\n speed - 55\n***************\n";
							cout << endl;
						}
						break;
					case 2:
						if((level <= 4)&&(level >= 2))
						{
							cout<< "(" << d + 5 << ")\n***************\nThe Pacman(lvl 4):\n attack - 65\n defense - 30\n speed - 60\n***************\n";
							cout << endl;
						}
						break;
					case 3:
						if((level <= 4)&&(level >= 2))
						{
							cout<< "(" << d + 5 << ")\n***************\nThe Man Eating Bunny(lvl 4):\n attack - 75\n defense - 35\n speed - 55\n***************\n";
							cout << endl;
						}
						break;
					case 4:
						if((level <= 4)&&(level >= 2))
						{
							cout<< "(" << d + 5 << ")\n***************\nThe Warlock(lvl 4):\n attack - 70\n defense - 40\n speed - 50\n***************\n";
							cout << endl;
						}
						break;
					default:
						cout << "Can't Happen";
					}
					switch(random4)
					{
					case 1:
						if((level <= 5)&&(level >= 3))
						{
							cout<< "(" << d + 6 << ")\n***************\nPoseidon(lvl 5):\n attack - 80\n defense - 45\n speed - 45\n***************\n";
							cout << endl;
						}
						break;
					case 2:
						if((level <= 5)&&(level >= 3))
						{
							cout<< "(" << d + 6 << ")\n***************\nMinitaur(lvl 5):\n attack - 65\n defense - 55\n speed - 50\n***************\n";
							cout << endl;
						}
						break;
					case 3:
						if((level <= 5)&&(level >= 3))
						{
							cout<< "(" << d + 6 << ")\n***************\nThe Cyclops(lvl 5):\n attack - 75\n defense - 45\n speed - 50\n***************\n";
							cout << endl;
						}
						break;
					case 4:
						if((level <= 5)&&(level >= 3))
						{
							cout<< "(" << d + 6 << ")\n***************\nThe Dragon(lvl 5):\n attack - 80\n defense - 55\n speed - 30\n***************\n";
							cout << endl;
						}
						break;
					default:
						cout << "Can't Happen";
					}
					switch(random4)
					{
					case 1:
						if((level <= 6)&&(level >= 4))
						{
							cout<< "(" << d + 7 << ")\n***************\nAthena(lvl 6):\n attack - 85\n defense - 55\n speed - 60\n***************\n";
							cout << endl;
						}
						break;
					case 2:
						if((level <= 6)&&(level >= 4))
						{
							cout<< "(" << d + 7 << ")\n***************\nZeus(lvl 6):\n attack - 90\n defense - 65\n speed - 55\n***************\n";
							cout << endl;
						}
						break;
					case 3:
						if((level <= 6)&&(level >= 4))
						{
							cout<< "(" << d + 7 << ")\n***************\nHades(lvl 6):\n attack - 75\n defense - 70\n speed - 50\n***************\n";
							cout << endl;
						}
						break;
					case 4:
						if((level <= 6)&&(level >= 4))
						{
							cout<< "(" << d + 7 << ")\n***************\nOsiris(lvl 6):\n attack - 70\n defense - 60\n speed - 55\n***************\n";
							cout << endl;
						}
						break;
					default:
						cout << "Can't Happen";
					}
					if((level <= 99)&&(level >= 5))
					{
						cout<< "(" << d + 8 << ")\n***************\nGod(lvl ?):\n attack - ??\n defense - ??\n speed - ??\n***************\n";
						cout << endl;
					}
					cout << ":";
					cin >> opponent;
					if((opponent > 3)||(opponent < 1))
					{
						system("cls");
						cout << "You must enter an integer between 1 and 3!!!!\n\n";
						system("pause");
						system("cls");
					}
				}while((opponent > 3)||(opponent < 1));
				system("cls");
				opponent = opponent + c;
				switch(opponent)
				{
				case 1:
					switch(random3)
					{
					case 1:
						attackop = 0, defenseop = 20, speedop = 0, nameop = "Tree", expo = 40, moneyo = 20;
						break;
					case 2:
						attackop = 0, defenseop = 30, speedop = 0, nameop = "Rock", expo = 60, moneyo = 30;
						break;
					case 3:
						attackop = 0, defenseop = 10, speedop = 0, nameop = "Computer", expo = 20, moneyo = 10;
						break;
					case 4:
						attackop = 0, defenseop = 5, speedop = 0, nameop = "Book", expo = 10, moneyo = 5;
						break;
					}
					break;
				case 2:
					switch(random4)
					{
					case 1:
						attackop = 30, defenseop = 20, speedop = 30, nameop = "Rat", expo = 160, moneyo = 80;
						break;
					case 2:
						attackop = 40, defenseop = 20, speedop = 30, nameop = "Cat", expo = 180, moneyo = 90;
						break;
					case 3:
						attackop = 45, defenseop = 25, speedop = 30, nameop = "Dog", expo = 200, moneyo = 100;
						break;
					case 4:
						attackop = 35, defenseop = 20, speedop = 35, nameop = "Bat", expo = 180, moneyo = 90;
						break;
					}
					break;
				case 3:
					switch(random5)
					{
					case 1:
						attackop = 65, defenseop = 35, speedop = 45, nameop = "Mage", expo = 290, moneyo = 145;
						break;
					case 2:
						attackop = 60, defenseop = 50, speedop = 50, nameop = "Jackel", expo = 320, moneyo = 160;
						break;
					case 3:
						attackop = 65, defenseop = 55, speedop = 45, nameop = "Crusader", expo = 330, moneyo = 165;
						break;
					case 4:
						attackop = 55, defenseop = 45, speedop = 55, nameop = "Wolf", expo = 310, moneyo = 155;
						break;
					}
					break;
				case 4:
					switch(random3)
					{
					case 1:
						attackop = 85, defenseop = 35, speedop = 65, nameop = "Assassin", expo = 330, moneyo = 165;
						break;
					case 2:
						attackop = 75, defenseop = 30, speedop = 70, nameop = "Pacman", expo = 310, moneyo = 155;
						break;
					case 3:
						attackop = 85, defenseop = 35, speedop = 85, nameop = "Man Eating Bunny", expo = 330, moneyo = 165;
						break;
					case 4:
						attackop = 80, defenseop = 40, speedop = 60, nameop = "Warlock", expo = 320, moneyo = 160;
						break;
					}

					break;
				case 5:
					switch(random4)
					{
					case 1:
						attackop = 90, defenseop = 45, speedop = 55, nameop = "Poseidon", expo = 340, moneyo = 170;
						break;
					case 2:
						attackop = 80, defenseop = 55, speedop = 60, nameop = "Minitaur", expo = 350, moneyo = 175;
						break;
					case 3:
						attackop = 85, defenseop = 45, speedop = 70, nameop = "Cyclops", expo = 340, moneyo = 170;
						break;
					case 4:
						attackop = 90, defenseop = 55, speedop = 45, nameop = "Dragon", expo = 340, moneyo = 170;
						break;
					}
					break;
				case 6:
					switch(random5)
					{
					case 1:
						attackop = 105, defenseop = 55, speedop = 70, nameop = "Athena", expo = 400, moneyo = 200;
						break;
					case 2:
						attackop = 110, defenseop = 65, speedop = 65, nameop = "Zeus", expo = 420, moneyo = 210;
						break;
					case 3:
						attackop = 95, defenseop = 70, speedop = 60, nameop = "Hades", expo = 390, moneyo = 195;
						break;
					case 4:
						attackop = 90, defenseop = 60, speedop = 65, nameop = "Osiris", expo = 370, moneyo = 185;
						break;
					}
					break;
				case 7:
					attackop = 110, defenseop = 90, speedop = 80, nameop = "God";
					break;
				default:
					cout << "No One";
				}
				//success rate
				asuccess = speedus - defenseop + 50;
				msuccess = speedus - defenseop + 50;
				cout << "First Round is: " << nameus << " vs. " << nameop << "!!!";
				if(opponent != 7)
					Sleep(1000);
				if(opponent == 7)
				{
					Beep(350,200);
					Beep(300,300);
					Beep(400,200);
					Beep(350,250);
					Beep(400,400);
					Beep(450,600);
				}
				//amount of damage dealt
				a = attackus - defenseop;
				b = magicus - defenseop;
				opac = 100 - defenseus;
				attackop = attackop - defenseus;
				if (attackop < 0)
					attackop = 0;
				else
					attackop = attackop;
				do{
					//Random Number Generator
					int random, random2;
					random = rand() % 100;
					random2 = rand() % 100;


					system("CLS");

					//limitation
					if(asuccess > 100)
						asuccess = 100;
					else
						asuccess = asuccess;
					if(msuccess > 100)
						msuccess = 100;
					else
						msuccess = msuccess;

					//options
					do{
						if((random < 80)&&(random > 75))
						{
							system("cls");
							cout << "Incredible..a mythical sword has fallen from the sky and into your fist.\nYour attack has rose an additional 5 points!\n(only used on THIS round.)\n\n";
							a = a + 5;
							system("pause");
							system("cls");
						}
						if((random < 76)&&(random > 70))
						{
							system("cls");
							cout << "You have just returned from the shoe store, with sneakers faster than lightning!\nYour Speed rose an additional 5 points!\n(only used on THIS round.)\n\n";
							asuccess = asuccess + 5;
							msuccess = msuccess + 5;
							system("pause");
							system("cls");
						}
						if((random < 71)&&(random > 65))
						{
							system("cls");
							cout << "An ancient wizard visited you in your sleep, and gave you a new spell.\nYour magic has rose an additional 5 points!\n(only used on THIS round.)\n\n";
							b = b + 5;
							system("pause");
							system("cls");
						}
						if((random < 66)&&(random > 60))
						{
							system("cls");
							cout << "Athena has just granted you a new sheild!\nYour defense has rose an additional 5 points!\n(only used on THIS round.)\n\n";
							opac = opac - 5;
							system("pause");
							system("cls");
						}
						healus = attackop -5;
						if(healus <= 0)
							healus = 10;
						cout << "What would you like to use?\n\n"
							<< "(1)\n***************\nattack: " << asuccess << "% chance of success\n***************\n\n"
							<< "(2)\n***************\nmagic: " << msuccess << "% chance of success\n***************\n\n"
							<< "(3)\n***************\nheal + " << healus << "hp\n***************\n\n";
						cout << ": ";
						cin >> atk;
						if(atk > 3)
						{
							system("cls");
							cout << "You MUST enter a number between 1 and 3!!!\n\n";
							system("pause");
							system("cls");
						}
					}while(atk > 3);
					system("CLS");
					cout << "Calculating results";
					for(int counter = 0; counter <= 6; counter++)
					{
						Sleep(00);
						cout << ".";
					}
					system("CLS");
					switch(atk)
					{
					case 1:
						if(random<=asuccess)
						{
							if(random<=10)
							{
								cout << "CRITICAL!!!!\n\n\a";
								a = a * 2;
							}
							if(a < 0)
								a = 5;
							cout << "You took away " << a << " health points from the " << nameop << "!\n\n";
							healthop = healthop - a;
							if(healthop < 0)
								healthop = 0;
							cout << "The " << nameop << "'s health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
							if(random<=10)
								a = a/2;
						}
						else
						{
							cout << "You missed!\n\n";
							cout << "The " << nameop << "'s health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
						}
						break;
					case 2:
						if(random<=msuccess)
						{
							if(random<=10)
							{
								cout << "CRITICAL!!!!\n\n\a";
								b = b * 2;
							}
							if(b < 0)
								b = 5;
							cout << "You took away " << b << " health points from the " << nameop << "!\n\n";
							healthop = healthop - b;
							if(healthop < 0)
								healthop = 0;
							cout << "The " << nameop << "'s health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
							if(random<=10)
								b = b/2;
						}
						else
						{
							cout << "You missed!\n\n";
							cout << "The " << nameop << "'s health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
						}
						break;
					case 3:
						if(healthus < 100)
						{
							healthus = healthus + healus;
							cout << "Your health rose from " << healthus-healus << ", to " << healthus << "!!!" << endl << endl;
						}
						else
							cout << "Your health is already 100%!!!" << endl << endl;
						break;
					default:
						cout << "Attack Not available";
					}
					system("pause");
					system("cls");
					if(healthop > 0)
					{
						cout << "Opponent is now attacking";
						for(int counter = 6; counter >= 0; counter--)
						{
							Sleep(00);
							cout << ".";
						}
						system("cls");
						if(opac <= random2)
						{
							if(random2<=5)
							{
								cout << "CRITICAL!!!!\n\n\a";
								attackop = attackop + 15;
							}
							if(attackop <= 0)
								attackop = 5;
							if(opponent==1)
								attackop = 0;
							cout << "The opponent took away " << attackop << " health points from you!\n\n";
							healthus = healthus - attackop;
							if(healthus < 0)
								healthus = 0;
							cout << "Opponent's health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
							if(random2<=5)
								attackop = attackop - 15;
						}
						else
						{
							cout << "The opponent missed!\n\n";
							cout << "Opponent's health is: " << healthop << endl << "Your health is: " << healthus << endl << endl;
						}
						system("pause");
					}
				}while((healthop >= 1)&&(healthus >= 1));
				system("cls");
				if(healthop >= 1)
				{
					cout << "You were beat by the " << nameop << "!!! Whhaaaahaahaaaaa\n\n";
					Beep(180,500);
					Beep(160,500);
					Beep(140,500);
					Beep(120,500);
					Beep(100,800);
				}
				else if(opponent!=7)
				{
					if(healthus > 0)
					{
						healthus = 100;
						cout << "You have gained " << expo << " experience, and " << moneyo << " money!!!\n\n";
						exp = exp + expo;
						money = money + moneyo;
						cout << "You have " << exp << " experience points!\n";
						if(levelup > exp)
							cout <<	"You need " << levelup - exp << " more exp points to level up.\n";
						cout << "You have $" << money << endl << endl;
						system("pause");
						system("cls");
					}

					if(exp >= levelup)
					{
						c++;
						level++;
						cout << "Congratulations on your victory! You have graduated to level " << level << "!!!.\n\n";
						cout << "Which attribute would you like to increase by 5 points?\n";
						cout << endl << "(1)\n*****\nattack\n*****\n\n(2)\n*****\nmagic\n*****\n\n(3)\n*****\nspeed\n*****\n\n(4)\n*****\ndefense\n*****\n:";
						cin >> atr;
						switch(atr)
						{
						case 1:
							attackus = attackus + 5;
							break;
						case 2:
							magicus = magicus + 5;
							break;
						case 3:
							speedus = speedus + 5;
							break;
						case 4:
							defenseus = defenseus + 5;
							break;
						default:
							defenseus = defenseus;
							break;
						}
						system("cls");
						cout << "Your current Stats are:\nattack - " << attackus << endl << "magic - " << magicus << endl << "speed - " << speedus << endl << "defense - " << defenseus << endl << endl;
						system("pause");
						system("cls");
						levelup = levelup*2;
					}
				}
				system("pause");
				break;
			case 2:
				do{
					do{
						system("cls");
						cout << "You have $" << money << " left.";
						cout << " Which Item would you like to buy?\n\n";
						cout << "(1)\n**********\nRusty Sword(+3 attack) - 300$\n**********\n";
						cout << "(2)\n**********\nSteel Sword(+6 attack) - 500$\n**********\n";
						cout << "(3)\n**********\nGreat Sword(+9 attack) - 700$\n**********\n\n";
						cout << "(4)\n**********\nWooden Shield(+3 defense) - 300$\n**********\n";
						cout << "(5)\n**********\nSmall Shield(+6 defense) - 500$\n**********\n";
						cout << "(6)\n**********\nGaurdian's Shield(+9 defense) - 700$\n**********\n\n";
						cout << "(7)\n**********\nWooden Staff(+3 magic) - 300$\n**********\n";
						cout << "(8)\n**********\nCurved Staff(+6 magic) - 500$\n**********\n";
						cout << "(9)\n**********\nWarlock's Staff(+9 magic) - 700$\n**********\n\n";
						cout << "(10)\n**********\nPatched Loafers(+3 speed) - 300$\n**********\n";
						cout << "(11)\n**********\nRegular Sneakers(+6 speed) - 500$\n**********\n";
						cout << "(12)\n**********\nRunning Shoes(+9 speed) - 700$\n**********\n";
						cout << "(13)\n**********\nExit\n**********\n";
						cin >> item;
						system("cls");
					}while((item > 13)||(item < 1));
					switch(item)
					{
					case 1: 
						if(money >= 300)
						{
							cout << "You have gained 3 attack!\n\n";
							money = money - 300;
							attackus = attackus + 3;
							break;
						}
					case 2: 
						if(money >= 500)
						{
							cout << "You have gained 6 attack!\n\n";
							money = money - 500;
							attackus = attackus + 6;
							break;
						}
					case 3: 
						if(money >= 700)
						{
							cout << "You have gained 9 attack!\n\n";
							money = money - 700;
							attackus = attackus + 9;
							break;
						}
					case 4: 
						if(money >= 300)
						{
							cout << "You have gained 3 defense!\n\n";
							money = money - 300;
							defenseus = defenseus + 3;
							break;
						}
					case 5: 
						if(money >= 500)
						{
							cout << "You have gained 6 defense!\n\n";
							money = money - 500;
							defenseus = defenseus + 6;
							break;
						}
					case 6: 
						if(money >= 700)
						{
							cout << "You have gained 9 defense!\n\n";
							money = money - 700;
							defenseus = defenseus + 9;
							break;
						}
					case 7: 
						if(money >= 300)
						{
							cout << "You have gained 3 magic!\n\n";
							money = money - 300;
							magicus = magicus + 3;
							break;
						}
					case 8: 
						if(money >= 500)
						{
							cout << "You have gained 3 magic!\n\n";
							money = money - 500;
							magicus = magicus + 6;
							break;
						}
					case 9: 
						if(money >= 700)
						{
							cout << "You have gained 3 magic!\n\n";
							money = money - 700;
							magicus = magicus + 9;
							break;
						}
					case 10: 
						if(money >= 300)
						{
							cout << "You have gained 3 speed!\n\n";
							money = money - 300;
							speedus = speedus + 3;
							break;
						}
					case 11: 
						if(money >= 500)
						{
							cout << "You have gained 3 speed!\n\n";
							money = money - 500;
							speedus = speedus + 6;
							break;
						}
					case 12: 
						if(money >= 700)
						{
							cout << "You have gained 3 speed!\n\n";
							money = money - 700;
							speedus = speedus + 9;
							break;
						}
					default:
						speedus = speedus;
					}

					//END Armory
					cout << "Would you like to exit? (y or n): ";
					cin >> exit;

					system("cls");
				}while(exit != 'y');
				break;
			default:
				cout << "Please select 1 or 2!!!";
			}
		}while((healthus > 0)&&(opponent!=7));
	}while((healthus >= 1)&&(opponent!=7));
	if(healthus >= 1)
	{
		cout << "OMG!! YOU WON!!! You are better than god...congrats!\n";
		cout << "                     ********                                               ";
		cout << "                   ************    **                                       ";
		cout << "                  ************** ******                                     ";
		cout << "                 ***********************                                    ";
		cout << "                 ***********************                                    ";
		cout << "                 **************** *****                                     ";
		cout << "                  **************   ***                                      ";
		cout << "                   ************     *                                       ";
		cout << "                     ********      ***      * *                             ";
		cout << "                       ****          *     *   *                            ";
		cout << "                        **            *   *    *                            ";
		cout << "                       ****            * *      *                           ";
		cout << "                         *                                                  ";
		cout << "                          *                                                 ";
		cout << "                           * * *                                            ";
		cout << "                          * *   *                                           ";
		cout << "                        *    * *                                            ";
		cout << "                        *                                                   ";
		cout << "                        *                                                   ";
		cout << "                         *                                                  ";
		Beep(100,100);
		Beep(120,100);
		Beep(140,100);
		Beep(160,100);
		Beep(180,100);
		Beep(200,100);
		Beep(220,100);
		Beep(240,100);
		Beep(260,100);
		Beep(280,100);
		Beep(300,100);
		Beep(320,100);
		Beep(340,100);
		Beep(360,100);
		Beep(380,100);
		Beep(400,100);
		Beep(420,100);
		Beep(440,100);
		Beep(460,100);
		Beep(480,100);
		Beep(500,100);
		Beep(600,300);
	}
}
Clinton Portis 211 Practically a Posting Shark

That looks like quite a time investment.. cool ascii art too.

How long did all this take you..??!?

restrictment 91 Posting Whiz in Training

Thanks. It took me about 1/2 a week. I worked on it about 2-4 hours each day. So about 10 hours.

Pynolathgeen 19 Light Poster

O_O!? Wow!

k9shark 0 Newbie Poster

first off, Very cool game!!
Just some minor things I noticed: typo in the armory section- speed and magic say "you gained 3 speed/magic" on all 3 items- should be 3, 6, 9; and the balloon graphic at the end either needs

<<endl

at the end of each line or add 4 spaces to each line, as you have 76 characters for each line, while the console prints 80.. so for me the graphic got screwed up..
but all the coding/calculations seem to work fine so Congrats on a good first game! ;-)

mulachap 0 Newbie Poster

I need some help . im beginner to HLL . and currently i hav coded basic arithmatic in console applications .

i copied the code but could not understand wat type of file will b able to correctly use it?///

brandonrunyon 21 Junior Poster

It would be helpful if you could refactor your code to be Object Oriented. This would allow you to add more features and clean up the code layout a bit. Enemies would be capable of far more. And game logic like adding weapons, leveling up, entering a new area, and hit points would be far more easier for you to work with if everything was split up into classes. And it's kinda the whole point of C++.

mrnutty 761 Senior Poster

>> And it's kinda the whole point of C++

No its not. C++ != OOP. C++ has OOP, but does not mean C++ is OOP.

restrictment 91 Posting Whiz in Training

Hmm, yeah I really should have learned OOP, but tbh I made this game in my first few weeks of learning C++, so it was quite the project for myself. ;D

Still en't learned OOP though..do you guys know of any good free tutorials?

brandonrunyon 21 Junior Poster

>> And it's kinda the whole point of C++

No its not. C++ != OOP. C++ has OOP, but does not mean C++ is OOP.

It's not like java where EVERYTHINGS an object. But if you aren't going to use OO Design Principles in C++ to modularize your software, then why the hell would you use C++? Just write it all in C or Assembler if you just want to write procedural programming :-/

brandonrunyon 21 Junior Poster

Hmm, yeah I really should have learned OOP, but tbh I made this game in my first few weeks of learning C++, so it was quite the project for myself. ;D

Still en't learned OOP though..do you guys know of any good free tutorials?

Bruce Eckel's the man when it comes to OO design. He has some of his books for frees! http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html

This one looks like it could get in depth:
http://www.desy.de/gna/html/cc/Tutorial/tutorial.html

The bottom line is simply splitting up your entities into objects and writing methods and functions specific to those objects for the sake of abstraction and inheritance. It makes code reuse (for other projects) a very easy approach later.

C++ was meant to be a Object Oriented Programming language, and super-set of C. It's not *as* OO as say smalltalk or java or ruby but still that is it's purpose: for you to take advantage of the ways OO can make your life easier in a low level language.

mrnutty 761 Senior Poster

>> But if you aren't going to use OO Design Principles in C++ to modularize your software, then why the hell would you use C++?

I never claimed that I wouldn't use OOP in C++. I was just responding to your previous comment when you said that the whole point of C++ is OOP; which is untrue.

brandonrunyon 21 Junior Poster

>> But if you aren't going to use OO Design Principles in C++ to modularize your software, then why the hell would you use C++?

I never claimed that I wouldn't use OOP in C++. I was just responding to your previous comment when you said that the whole point of C++ is OOP; which is untrue.

I should be be more precise in my definition then. C++
* is a better C
* supports data abstraction
* supports object-oriented programming
* supports generic programming.
source: Bjarne Stroustrup

With that said, if you aren't taking advantage of C++'s core features, the very reason it was designed, then it's probably better to refactor it to C IMO. It's main features ARE the point of C++, any of the 4 BS listed. If it's not, then what really is the point of common C++ use?

This code is good beginning example of procedural gaming logic and I really don't want to high-jack the thread for a debate on language features and nit-picked semantics. I just suggested that it would be easily refactored as a OO design and would benefit the programmer to take advantage of C++'s core features as opposed to doing it "the C way" if C++ is his/her continued weapon of choice.

main() 0 Newbie Poster

This is great! Nice work, with the ascii art.

Bug: typing in a letter causes it repeatedly loop,

otherwise it's awesome

debugger09 0 Light Poster

Great Work!!
but atleast you could hav use functions

BCBTP 0 Light Poster

Talking about OOP, you haven't even used functions...lol

piyush3dxyz commented: YA...also any class or stucture.....This person do 10 mins work in 100min +0
dospy 51 Junior Poster in Training

'Thinking in C++' is a perfect book for beginners and it also explains most of OOP aspects well

DetoxApsodite 0 Newbie Poster

Well, I have been learning C++ for three weeks now, two lessons a week, and the farthest I got was making a 1d20 roller, which lets you specify a modifier, and notes when you roll a natural 20. So, this is quite impressive. Also, I love the ASCII art.

Member Avatar for emeraldamerican
emeraldamerican

I am new to C++ and this was very helpful to me. Thank you for sharing this with us!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.