2016-12-01 7 views
-2

Я пытаюсь закодировать семейную феодальную игру, и я хочу знать, как остановить повторные ответы? как в этом коде, я мог продолжать писать «ошибки», и цикл будет продолжаться.как я могу перестать повторять ответы в этом вопросе?

void f() 
{ 
    int y=0; 
    string q[17]; 
    string ans1[4]; 
    ans1[0]= "bears"; 
    ans1[1]="bugs"; 
    ans1[2]= "snakes"; 
    ans1[3]="skunks"; 
    string ans; 
    int sum=0; 
    q[0]="Name something you try to avoid when camping in the woods."; 
    cout << q[0] << endl; 
    for (int a=0; a<7; a++) 
    { 
     int b; 
     getline(cin,ans); 
     if (ans==ans1[0]||ans==ans1[1]||ans==ans1[2]||ans==ans1[3]) 
     { 
      if (ans==ans1[0]) 
      { 
       b=42; 
      cout << "SURVEY SAYS " << b << "! Good Job! " << endl; sum=sum+b; 
      } 
      else if (ans==ans1[1]) 
      { 
       b=33; 
      cout << "SURVEY SAYS " << b << "! Nice one man! " << endl; sum=sum+b; 
      } 
      else if (ans==ans1[2]) 
      { 
       b=20; 
      cout <<"SURVEY SAYS " << b << "! Fantastic man!"<< endl; sum=sum+b; 
      } 

      else if (ans==ans1[3]) 
       { 
        b=5; 
        cout << "SURVEY SAYS " << b << "! You Got it!" << endl; sum=sum+b; 
       } 
     } 
     else if (ans!=ans1[0]&&ans!=ans1[1]&&ans!=ans1[2]&&ans!=ans1[3]) 
     { 
       cout << "YOU GOT THIS ONE WRONG! "<< endl; y++; 
     if (y==3) { cout << "LOOOOSER" << endl; break;} 
     } 
    } 
    cout << " your total score for 

этот раунд "< < < < сумма епсИ;. }

+0

, если вы думаете о своих ответах как список «правильных ответов, которые еще не догадались», когда допустимый ответ угадан, его необходимо удалить из списка. либо помещайте каждый ответ в контейнер (вектор на один дед), и удаляйте каждый угаданный, или каким-либо образом отмечайте каждый угаданный ответ, а не проверяйте его снова. тест на правильные ответы должен зацикливаться на списке допустимых ответов; существующий тест не будет работать хорошо. другой момент: тест «else if» не помогает: внешние, если тесты, чтобы проверить, правильно ли ответил какой-либо ответ; если этот тест терпит неудачу, else должен быть правдой, поэтому не нужно делать все тесты! = – ryonts

ответ

1

Вы должны были бы сохранить список (я бы рекомендовал std::vector) всех принятых ответов Тогда, когда дали новый ответ, вы должны проверить, не в списке.

в качестве альтернативы, для каждого ответа, есть wasUsed переменных, вы заканчивали, когда ответ даются и установить после того, как ответ принимаются.

Смежные вопросы