Code:
//Cursor Position
#include <conio.h> //required for getch()
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
string map1[24] =
{
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX\n",
"XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX\n",
"XXXXX XXXXXXXXX XXXX XX\n",
"XXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX XXXX XX\n",
"XXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX XXXX XX\n",
"XXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XX\n",
"XXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XX\n",
"XXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XX\n",
"XXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XX\n",
"XXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XX\n",
"XXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XX\n",
"XXXXX XXXXXXXX XXXXXXXXXX XX\n",
"XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX\n",
"XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX\n",
"XXXXX XX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
};
string map2[24] =
{
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXX XXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXX\n",
"X XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX\n",
"X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX\n",
"X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
};
string map3[24] =
{
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n"
};
//function that generates a goto feature on the ouptut screen
int monsters = 2; //tells how many monsters are alive.
void gotoxy(int x, int y)
{
HANDLE hConsoleOutput;
COORD dwCursorPosition;
cout.flush();
dwCursorPosition.X = x;
dwCursorPosition.Y = y;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}
int defence = 2; //defence
int strength = 2; //strength
int demonhp = 25; //demons hp
int billhp = 15;
int stevehp = 16;
int hp = 30; //your hp
int demonoption; //fight run heal - etc etc for demon
int m1c = 69; //monster one's coordinates
int m1r = 1;
int m2c = 76;
int m2r = 3;
int c = 6;
int r = 2;
int monster = 2;
int stevelife = 1;
int billlife = 1;
int tempm1c, tempm1r, tempm2r, tempm2c;
bool checkMonster();
bool monstersAlive();
bool checkWall();
bool checkFire();
bool checkDoor();
void chooseAttack1();
void attackDemon();
void ceoDead();
void ceoWall();
void healCharacter();
void demonAttack();
void runMonster();
void demonDead();
void youDead();
void moveDemon();
void checkDemon();
void fightMonster1();
void fightMonster2();
void checkCEO();
void ceoOptions();
void attackBill();
void attackSteve();
void steveAttack();
void billAttack();
void healCharacter2();
void billDead();
void steveDead();
void resetMap();
void drawMap(string map[])
{
for (int j=0; j<24; j++)
{
cout<<map[j];
}
}
void resetMap()
{
system ("cls");
drawMap(map1);
gotoxy (c,r);
cout<<(char) 232;
gotoxy (m1c,m1r);
cout<<"m";
gotoxy (m2c,m2r);
cout<<"m";
gotoxy (30,6);
cout<<"D";
gotoxy (57,5);
cout<<"(W)";
int wallcounter = 1;
while ( monstersAlive != false && wallcounter == 1 )
{
gotoxy (30,16);
cout<<"XXX";
wallcounter=2;
}
}
bool checkWall(string map[], int x, int y)
{
bool hitWall = false;
// the x and y are reversed because the string array picks which line first then the position within the line
if (map[y][x] == 'X')
{
hitWall = true;
}
return hitWall;
}
bool collideDemon(string map[], int x, int y)
{
bool hitDemon = false;
// the x and y are reversed because the string array picks which line first then the position within the line
if (map[y][x] == m1c,m1r )
{
hitDemon = true;
}
return hitDemon;
}
void charMove(int x, int y)
{
gotoxy(x, y);
cout<<(char) 232;
}
void charClear(int x, int y)
{
gotoxy(x, y);
cout<<" ";
}
void fightMonster1() //intro to fighting monster one
{
int fightlady; // int to ask if you want to fight the old lady
system ("cls");
cout<<"You encounter an Old Lady."<<endl;
//Enter Old Lady ASCII
cout<<endl<<"Press Enter..."<<endl;
cin.get(); //same as system pause but not as resource heavy
Sleep (1500);
cout<<"Want to fight it?"<<endl;
cout<<"[1] - Yes [2] - No"<<endl;
cin>>fightlady; //asks if you want to fight the old lady
system ("cls");
if ( fightlady == 1 ) //if you want to fight it
{
cout<<"Why would you want to do that?"<<endl;
Sleep (1500);
cout<<"She's a helpless old lady!"<<endl;
system ("PAUSE");
}
else if ( fightlady == 2 ) //if you don't want to fight it
{
cout<<"Good choice!"<<endl;
cout<<"Just kidding, you're going to die. :)"<<endl;
system ("PAUSE");
}
system ("cls");
cout<<"The 'old lady' morphs into a giant demon!"<<endl;
//Enter Demon ASCII
system ("PAUSE");
system ("cls");
chooseAttack1();
}
void chooseAttack1() //call chooseAttack1 - fight options for the demon
{
system ("cls");
cout<<"The Demon has "<<demonhp<<" health."<<endl<<"You have "<<hp<<" health."<<endl;
cout<<"Your options are"<<endl<<"[1] - Attack"<<endl<<"[2] - Heal"<<endl<<"[3] - Skip Turn"<<endl<<"[4] - Run"<<endl;
cin>>demonoption; //asks what you want to do when fighting the demon
system ("cls");
if ( demonoption == 1 )
{
attackDemon();
}
else if ( demonoption == 2 )
{
healCharacter();
}
else if ( demonoption == 3 )
{
demonAttack();
}
else if ( demonoption == 4 )
{
runMonster();
}
}
bool killedYou()
{
bool killedYou = false;
if ( hp <= 0 )
{
killedYou = true;
}
return killedYou;
}
bool monstersAlive()
{
bool monstersAlive = true;
if ( monsters == 0 )
{
monstersAlive = false;
}
return monstersAlive;
}
bool killedDemon()
{
bool killedDemon = false;
if ( demonhp <= 0 )
{
killedDemon = true;
}
return killedDemon;
}
void demonWall(string map[])
{
srand (time(NULL)); // initialize the randomizer
do
{
tempm1c=m1c;
tempm1r=m1r;
int random = (rand()%10);
int random2 = (rand()%10);
int random3 = (rand()%2);
// if ( random == 1 || random == 3 || random == 5 || random == 7 || random == 9 )
if ( random == 5 || random == 7 || random == 9 )
{
tempm1c=tempm1c-1;
}
// else if ( random == 2 || random == 4 || random == 6 || random == 8 || random == 10 )
else if (random == 6 || random == 8 || random == 10 )
{
tempm1c=tempm1c+1;
}
// if ( random2 == 1 || random2 == 3 || random2 == 5 || random2 == 7 || random2 == 9 )
if ( random2 == 5 || random2 == 7 || random2 == 9 )
{
tempm1r=tempm1r-1;
}
// else if ( random2 == 2 || random2 == 4 || random2 == 6 || random2 == 8 || random2 == 10 )
else if ( random2 == 6 || random2 == 8 || random2 == 10 )
{
tempm1r=tempm1r+1;
}
}
while(checkWall(map, tempm1c, tempm1r) && ((tempm1c>23) || (tempm1c<0) || (tempm1r<0) || (tempm1r>78)));
//if ( random3 == 1 || random3 == 2 && (!checkWall(map, tempm1c, tempm1r))
//{
charClear(m1c, m1r);
m1c=tempm1c;
m1r=tempm1r;
gotoxy (m1c, m1r);
cout<<"m";
//}
}
void ceoWall(string map[])
{
srand (time(NULL)); // initialize the randomizer
do
{
tempm2c=m2c;
tempm2r=m2r;
int random = (rand()%10);
int random2 = (rand()%10);
int random3 = (rand()%2);
// if ( random == 1 || random == 3 || random == 5 || random == 7 || random == 9 )
if ( random == 5 || random == 7 || random == 9 )
{
tempm2c=tempm2c-1;
}
// else if ( random == 2 || random == 4 || random == 6 || random == 8 || random == 10 )
else if (random == 6 || random == 8 || random == 10 )
{
tempm2c=tempm2c+1;
}
// if ( random2 == 1 || random2 == 3 || random2 == 5 || random2 == 7 || random2 == 9 )
if ( random2 == 5 || random2 == 7 || random2 == 9 )
{
tempm2r=tempm2r-1;
}
// else if ( random2 == 2 || random2 == 4 || random2 == 6 || random2 == 8 || random2 == 10 )
else if ( random2 == 6 || random2 == 8 || random2 == 10 )
{
tempm2r=tempm2r+1;
}
}
while(checkWall(map, tempm2c, tempm2r) && (checkFire(map, tempm2c, tempm2r) && (checkDoor(map, tempm2c, tempm2r) && ((tempm2c>23) || (tempm2c<0) || (tempm2r<0) || (tempm2r>78)));
//if ( random3 == 1 || random3 == 2 && (!checkWall(map, tempm1c, tempm1r))
//{
charClear(m2c, m2r);
m2c=tempm2c;
m2r=tempm2r;
gotoxy (m2c, m2r);
cout<<"m";
}
bool checkFire(string map[], int x, int y)
{
bool hitFire = false;
// the x and y are reversed because the string array picks which line first then the position within the line
if (map[y][x] == '(')
{
hitFire = true;
}
else if (map[y][x] == 'W')
{
hitFire = true;
}
else if (map[y][x] == ')')
{
hitFire = true;
}
return hitFire;
}
bool checkDoor(string map[], int x, int y)
{
bool hitDoor = false;
// the x and y are reversed because the string array picks which line first then the position within the line
if (map[y][x] == 'D')
{
hitDoor = true;
}
return hitDoor;
}
void checkDemon()
{
if ( m1c == c && m1r == r )
//if ( m1c != c )
{
fightMonster1();
}
}
void checkCEO()
{
if ( m2c == c && m2r == r )
//if ( m1c != c )
{
fightMonster2();
}
}
void attackDemon()
{
system ("cls");
cout<<"You charge the demon!"<<endl;
Sleep (1000);
int damage = strength+(rand()%15);
cout<<"You do "<<damage<<" damage."<<endl;
demonhp=demonhp-damage;
system ("PAUSE");
if ( demonhp <= 0 )
{
system ("cls");
demonDead();
}
else
{
system ("cls");
demonAttack();
}
}
void demonAttack()
{
system ("cls");
cout<<"The demon attacks you!"<<endl;
Sleep (1200);
int damage = (rand()%15)+3-defence;
cout<<"It does "<<damage<<" damage."<<endl;
hp=hp-damage;
system ("PAUSE");
if ( hp <= 0 )
{
system ("cls");
youDead();
}
else
{
system ("cls");
chooseAttack1();
}
}
void healCharacter()
{
system ("cls");
int heal = (rand()%11)+6;
hp=hp+heal;
cout<<"You heal by "<<heal<<" health, to "<<hp<<" health."<<endl;
system ("PAUSE");
demonAttack();
}
void runMonster()
{
system ("cls");
cout<<"You run from the monster like the little girl you are."<<endl;
system ("PAUSE");
system ("cls");
resetMap();
}
void demonDead()
{
system ("cls");
cout<<"You killed the Demon!"<<endl<<"You are on your way to becoming a true killer!"<<endl;
monster=monster-1;
system ("PAUSE");
system ("cls");
resetMap();
}
void youDead()
{
system ("cls");
cout<<"You died!"<<endl;
gotoxy (5,2);
cout<<"What";
Sleep (1000);
gotoxy (19,5);
Sleep (1000);
cout<<"The";
Sleep (1000);
gotoxy (31,8);
cout<<"Heck!";
cout<<endl<<endl<<endl;
system ("PAUSE");
system ("cls");
resetMap();
}
void fightMonster2()
{
system ("cls");
cout<<"You encounter a grousome foe!"<<endl;
system ("PAUSE");
system ("cls");
cout<<"It's.. it's.. it's...\n";
system ("PAUSE");
system ("cls");
gotoxy (13,3);
cout<<"Bill Gates";
Sleep (400);
gotoxy (24,4);
cout<<"and";
Sleep (400);
gotoxy (28,5);
cout<<"Steve Jobz!";
gotoxy (1,10);
system ("PAUSE");
ceoOptions();
}
void ceoOptions()
{
while ( stevelife == 1 && billlife == 1 )
{
system ("cls");
cout<<"Bill, the ex president of Micro$oft, has "<<billhp<<" health."<<endl<<"Steve Jobz, CEO of Apple, has "<<stevehp<<" health."<<endl<<"You have "<<hp<<" health."<<endl;
system ("PAUSE");
cout<<"[1] To Attack Bill\n[2] To Attack Steve\n[3] To Heal\n[4] To Run\n[5] To Skip Your Turn\n";
int ceoFightOptions;
cin>>ceoFightOptions;
if ( ceoFightOptions == 1 )
{
attackBill();
}
else if ( ceoFightOptions == 2 )
{
attackSteve();
}
else if ( ceoFightOptions == 3 )
{
healCharacter2();
}
else if ( ceoFightOptions == 4 )
{
runMonster();
}
else if ( ceoFightOptions == 5 )
{
billAttack();
}
}
while ( stevelife == 1 && billlife == 0 )
{
system ("cls");
cout<<"Steve Jobz, CEO of Apple, has "<<stevehp<<" health."<<endl<<"You have "<<hp<<" health."<<endl;
system ("PAUSE");
cout<<"[1] To Attack Steve\n[2] To Heal\n[3] To Run\n[4] To Skip Your Turn\n";
int ceoFightOptions;
cin>>ceoFightOptions;
if ( ceoFightOptions == 1 )
{
attackSteve();
}
else if ( ceoFightOptions == 2 )
{
healCharacter2();
}
else if ( ceoFightOptions == 3 )
{
runMonster();
}
else if ( ceoFightOptions == 4 )
{
billAttack();
}
}
while ( stevelife == 0 && billlife == 1 )
{
system ("cls");
cout<<"Bill, the ex president of Micro$oft, has "<<billhp<<" health."<<endl<<"You have "<<hp<<" health."<<endl;
system ("PAUSE");
cout<<"[1] To Attack Bill\n[2] To Heal\n[3] To Run\n[4] To Skip Your Turn\n";
int ceoFightOptions;
cin>>ceoFightOptions;
if ( ceoFightOptions == 1 )
{
attackBill();
}
else if ( ceoFightOptions == 2 )
{
healCharacter2();
}
else if ( ceoFightOptions == 3 )
{
runMonster();
}
else if ( ceoFightOptions == 4 )
{
billAttack();
}
} }
void healCharacter2()
{
system ("cls");
int heal = (rand()%11)+6;
hp=hp+heal;
cout<<"You heal by "<<heal<<" health, to "<<hp<<" health."<<endl;
system ("PAUSE");
billAttack();
}
void attackBill ()
{
system ("cls");
cout<<"You punch Bill in the mouth!"<<endl;
Sleep (800);
int damage = strength+(rand()%21);
cout<<"You do "<<damage<<" damage."<<endl;
billhp=billhp-damage;
system ("PAUSE");
if ( billhp <= 0 )
{
system ("cls");
billDead();
}
else
{
system ("cls");
billAttack();
}
}
void attackSteve ()
{
system ("cls");
cout<<"You punch Steve in the jaw!"<<endl;
Sleep (900);
int damage = strength+(rand()%12);
cout<<"You do "<<damage<<" damage."<<endl;
stevehp=stevehp-damage;
system ("PAUSE");
if ( stevehp <= 0 )
{
system ("cls");
steveDead();
}
else
{
system ("cls");
billAttack();
}
}
void billDead()
{
billlife=0;
while ( stevelife == 1 )
{
system ("cls");
cout<<"You killed Bill Gates!"<<endl;
system ("PAUSE");
ceoOptions();
}
while ( stevelife == 0 )
{
system ("cls");
cout<<"You Killed Bill Gates!"<<endl;
system ("PAUSE");
ceoDead();
}
}
void ceoDead()
{
monster=monster-1;
system ("cls");
cout<<"Both of the CEO's are dead!"<<endl<<"Good Job! :)"<<endl;
system ("PAUSE");
system ("cls");
drawMap(map1);
gotoxy (c,r);
cout<<(char) 232;
gotoxy (m1c,m1r);
cout<<"m";
gotoxy (m2c,m2r);
cout<<"m";
gotoxy (30,6);
cout<<"D";
gotoxy (58,6);
cout<<"(W)";
int wallcounter = 1;
while ( monstersAlive != false && wallcounter == 1 )
{
gotoxy (30,16);
cout<<"XXX";
wallcounter=2;
}
}
void steveDead()
{
stevelife=0;
while ( billlife == 1 )
{
system ("cls");
cout<<"You killed Steve Jobz!"<<endl;
system ("PAUSE");
ceoOptions();
}
while ( billlife == 0 )
{
system ("cls");
cout<<"You Killed Bill Gates!"<<endl;
system ("PAUSE");
ceoDead();
}
}
void billAttack()
{
while ( billlife == 1 )
{
system ("cls");
cout<<"Bill attacks you!"<<endl;
Sleep (1000);
int damage = (rand()%2)+3-defence;
cout<<"He does "<<damage<<" damage."<<endl;
hp=hp-damage;
system ("PAUSE");
if ( hp <= 0 )
{
system ("cls");
youDead();
}
else
{
system ("cls");
steveAttack();
}}
while ( billlife == 0 )
{
steveAttack();
}
}
void steveAttack()
{
while ( stevelife == 1 )
{
system ("cls");
cout<<"Steve attacks you!"<<endl;
Sleep (700);
int damage = (rand()%17)+3-defence;
cout<<"He does "<<damage<<" damage."<<endl;
hp=hp-damage;
system ("PAUSE");
if ( hp <= 0 )
{
system ("cls");
youDead();
}
else
{
system ("cls");
ceoOptions();
}}
while ( stevelife == 0 )
{
ceoOptions();
}
}
int main(int argc, char *argv[])
{
system("title Savior's of Death");
system("color 09");
char gameMove = 'k';
string map[24] = map1;
// system("cls");
resetMap();
while (gameMove != 'q')
{
//system("cls");
gameMove = getch();
// moves left with the "a" key or 4 on the numberpad
if ((((gameMove == 'a') || (gameMove == '4') || (gameMove == 'j'))) && (!checkWall(map, c-1, r))) {
if (c > 0) {
charClear(c, r);
c--;
charMove(c, r);
demonWall(map);
ceoWall(map);
checkDemon();
checkCEO();
}
}
// moves down with the "s" key or 2 on the numberpad
if ((((gameMove == 's') || (gameMove == '2') || (gameMove == 'k'))) && (!checkWall(map, c, r+1))) {
if (r < 23 ) {
charClear(c, r);
r++;
charMove(c, r);
demonWall(map);
ceoWall(map);
checkDemon();
checkCEO();
}
}
// moves right with the "d" key or 6 on the numberpad
if ((((gameMove == 'd') || (gameMove == '6') || (gameMove == 'l'))) && (!checkWall(map, c+1, r)))
{
if (c < 78)
{
charClear(c, r);
c++;
charMove(c, r);
demonWall(map);
ceoWall(map);
checkDemon();
checkCEO();
}
}
// moves up with the "w" key or 8 on the numberpad
if ((((gameMove == 'w') || (gameMove == '8') || (gameMove == 'i'))) && (!checkWall(map, c, r-1)))
{
if (r > 0)
{
charClear(c, r);
r--;
charMove(c, r);
demonWall(map);
ceoWall(map);
checkDemon();
checkCEO();
}
}
// moves lower left with 1 on the numberpad
if ((gameMove == '1') && (!checkWall(map, c-1, r+1)))
{
if ((r < 23) && (c > 0))
{
charClear(c, r);
c--;
r++;
charMove(c, r);
demonWall(map);
ceoWall(map);
checkDemon();
checkCEO();
}
}
// moves lower right with 3 on the numberpad
if ((gameMove == '3') && (!checkWall(map, c+1, r+1)))
{
if ((r < 23) && (c < 78)) {
charClear(c, r);
c++;
r++;
charMove(c, r);
demonWall(map);
ceoWall(map);
checkDemon();
checkCEO();
}
}
// moves upper left with 7 on the numberpad
if ((gameMove == '7') && (!checkWall(map, c-1, r-1)))
{
if ((r > 0) && (c > 0)) {
charClear(c, r);
c--;
r--;
charMove(c, r);
demonWall(map);
ceoWall(map);
checkDemon();
checkCEO();
}
}
// moves upper right with 9 on the numberpad
if ((gameMove == '9') && (!checkWall(map, c+1, r-1)))
{
if ((r > 0) && (c < 78)) {
charClear(c, r);
c++;
r--;
charMove(c, r);
demonWall(map);
ceoWall(map);
checkDemon();
checkCEO();
}
}
}
//system("PAUSE");
return EXIT_SUCCESS;
}