Hi and Merry x- mas all.
Im trying to finish the first stage of my text based rpg game.
Its my first game and im almost done. Im having one problem. Its compiling fine but its just not working and one point. It has a problem with the function whenfight(). Im going to put a bunch of if statments there so i can know when the person is going to fight. LIke if they were at 1 west and 2 south. or 3 north and 6 east.
The problem is when the user enters one which is suppose to be a fight in any direction it says error error, forever.
Im not posting the whole code, unless necessary because its 4 files. Ive narrowed the problem down. It says ERROR SOMEWHERE HERE in the comment.
THX a bunch. any suggestions or help is appreciated. Have a good x-mas.Code:#ifndef GUARD_Stage1 #define GUARD_Stage1 #include <iostream> int west, north, south, east; //directions class Stage1 { //open class private: int t_count; // total count of directions int west, north, south, east; //directions public: Stage1() : west(0),north (0),south(0),east (0),t_count(0) {}//contstructor ones void whenfight(); // when should i fight void showbathealth(); // show the health in battle void showtothealth(); // show the health overall void gethealth(); // get the health void getarea(); // get users choice of destination void fight(); // if in a fight void win(); // if you win void lose(); // if you lose }; //close class void Stage1::getarea() { //stage1 while (t_count <=100) { //while int areach = 0; Stage1::gethealth(); Stage1::showtothealth(); cout << " Choose your destination(1,2,3,4)"<<endl; cout << " 1: West "<<endl; cout << " 2: East "<<endl; cout << " 3: South "<<endl; cout << " 4: North "<<endl; cin >>areach; t_count+= 1; //increment total coutner of turns cin.ignore( 10, '\n' ); switch (areach) { case 1: //west west +=1; //increment coutner for batoptions cout << "w"; break; case 2: // east east +=1;//increment coutner for batoptions cout << "e"; break; case 3: //south south +=1;//increment coutner for batoptions cout << "s"; break; case 4: //north north +=1;//increment coutner for batoptions cout << "n"; break; default: cout << "INVALID INPUT"<<endl; } Stage1::whenfight(); // SOMEWHERE HERE!!!!!! //----------------------------------------------------------------- }//end while } //end stage1 double battdam = 100; //users damage double tothealth = 100; //total damage double compdam = 100; //computer damage void Stage1::fight() { int fch; // for switch cout << "You have entered a battle"; cout << "1)punch"; cout << "2)kick"; cout << "3)defend"; while (compdam > 0 || battdam >0) //while life is greater than0 { //while one switch (fch) { //switch one case 1: cout << "you have punched 10 damage"; compdam -= 10; //subtract user and battdam -= 5; // computer life cout << "You were hit, minus 5 damage"; Stage1::showbathealth(); break; case 2: cout <<"you have kicked 5 damage"; compdam -= 5;//subtract user and battdam -= 10;// computer life cout <<"You were hit minus 10 damage"; Stage1::showbathealth(); break; case 3: cout <<"you defend, lose 5 damage"; battdam -= 5;//subtract user and Stage1::showbathealth(); break; // computer life default: cout <<"error"; //ERROR SOMEWHERE HERE!!!!! break; } //switch one } //while one }//end function void Stage1::showbathealth() // show users total health { cout << "Your health now is " << battdam<<endl; } void Stage1::showtothealth() // show users total health { cout << "Your health now is " << tothealth<<endl; } void Stage1::gethealth() // get health from battle to total { tothealth = tothealth - ((100 - battdam) * .5); } void Stage1::whenfight() //ERROR SOMEWHERE HERE!!!!!!!!!!! { Stage1 sf1; //FUNTION TO FIND OUT WHEN TO FIGHT if (west == 1 || south == 1 || north == 1 ||east == 1) {sf1.fight();} } #endif
NOTE ill post all code or attatch all code if needed.



LinkBack URL
About LinkBacks



