0

ok im trying to make a video game for school medterm.. problem is it runs the females and male selection when it shouldnt... is this a syntax error or code error.. what can i do to fix it??

#include <iostream.h>
#include <iomanip.h>
#include <cstdlib>
main()
{
char gender;
char option;
char race;
int hp;
cout << "Please choose your gender(M/F). ";
cin >> gender;
switch(gender)
       {
       case 'M':
       cout << "You have chosen a male character. \n";
            cout << "Please choose your class.(Mage,Fighter,Archer.[M,F,A]) ";
            cin >> race; 
            switch(race)
             { //start of male race switch
              case 'M':
              cout << "You have chosen the Mage. ";
              hp = 75;
              break;
       
               case 'F':
               cout << "You have chosen the Fighter. ";
               hp = 120;
               break;
               
               case 'A':
               cout << "You have chosen the Archer. ";   
               hp = 100;
               break;
             
               }//end of male race switch
          break;    
       
       case 'F':
       cout << "You have chosen a female character.\n ";
            cout << "Please choose your class.(Mage,Fighter,Archer.[M,F,A]) ";
            cin >> race;   
            switch(race)
            {//start of female race switch
            case 'M':
            cout << "You have chosen the Mage. ";
            hp = 75;
            break;
       
            case 'F':
            cout << "You have chosen the Fighter. ";
            hp = 120;
            break;
           
            case 'A':
            cout << "You have chosen the Archer. "; 
            hp = 100;   
            break;
            
            }//end of F race switch
break;
            }//end of Gender
                    
switch(option)
{
         case 'A':
         break;
         case 'M':
         break;
         case 'I':
         break;
         case 'R':
         break;
}
//http://www.daniweb.com/techtalkforums/thread1769.html for random generator in range;
system("PAUSE");
return 0;
}
3
Contributors
6
Replies
7
Views
11 Years
Discussion Span
Last Post by shadowmoon
0

um... what is different between being male and female, except for the value of gender? I don't see what the problem is...

0

um its going to be for a textbased vid games.. its for the users benefit... the problem is realy that it runs both when the breaks should stop 1 from running...

ive had 3-4 ppl not including myself look at this in my class and we cant figue it out...

1

so, here's the output I get from running it (I made a few changes to the code, but nothing to affect the logic, and the lines starting with $ are where I start the program):

$ ./a.out 
Please choose your gender(M/F). M
You have chosen a male character. 
Please choose your class.(Mage,Fighter,Archer.[M,F,A]) F
You have chosen the Fighter.
 $ ./a.out 
Please choose your gender(M/F). F
You have chosen a female character.
 Please choose your class.(Mage,Fighter,Archer.[M,F,A]) A
You have chosen the Archer.

Is this output somehow incorrect?

And if you're wondering what changes I made to the source...
- I renamed the headers to <iostream> and <iomanip>, and also added the line using namespace std; after all the #includes
- I changed main() to int main() - I removed the system("pause") because it's not portable (mainly because it doesn't work on my computer)

Votes + Comments
Good job --joeprogrammer
0

wow that was quick... umm.. it was running male then clas pick then female and class pick then the default(tho i think we gpot rid of the default.).

ill try that tho...

0

wow that was quick... umm.. it was running male then clas pick then female and class pick then the default(tho i think we gpot rid of the default.).

ill try that tho...

It Gives one more error in the switch statement!!
switch(option)
{
case 'A': break;
case 'M':
break;
case 'I':
break;
case 'R':
break;
}

you are using Option without assigning.. so you need to comment out this switch case also.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.