У меня проблема с моим кодом для угадывания секретного номера. Я хочу сделать игру только предположениями и ответами на компьютере. Я попытался написать код, но результат - бесконечный цикл.Угадайте секретный номер (компьютер против компьютера) - AI
Это мой код:
#include <cstdlib>
#include <time.h>
#include <iostream>
using namespace std;
int main() {
int lowest = 0;
int highest = 9;
srand(time(0));
int number;
number = rand() % 9+1;
int guess;
guess = rand() % 9+1;
do {
if (number){
switch(number)
{
case 1:
if(guess>lowest)
lowest=guess;
do {
guess=rand()%9 +1;
}while(guess<lowest || guess>highest);
break;
case 2:
if(guess<highest)
highest=guess;
do {
guess=rand()%9 +1;
}while(guess<lowest || guess>highest);
break;
case 3:
cout<<"\n\n\aHA! I got it right"<< endl;
break;
}
if (guess < number){
cout << "Your guess is less than secret number"<<endl ;
}
else if (guess > number){
cout << "Your guess is high than secret number"<<endl ;
}
else
cout << "Your guess is right!" << endl;
}
} while (guess != number);
return 0;
}
Пожалуйста, помогите мне, как решить эту проблему.
Проверьте значение, которое вы тестируете в инструкции коммутатора. Если догадка составляет 1,2 или 3, код никогда не входит в коммутатор и никогда не выбирает новый номер. Даже если вы получите 1,2 или 3, результат почти наверняка не то, что вы имеете в виду. – user4581301
Как вы думаете, 'switch (number)' делает? –