猜一个秘密数字(计算机对计算机)- AI
Guessing a secret number (computer vs computer) - 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;
}
请帮我解决这个问题。
我认为您对 switch 语句的工作原理感到困惑。如所写,您的代码查看 number
并在数字为 1
时执行某些操作(在这种情况下它执行情况 1),或者如果 number
为 2
,或 3
。如果 number
不是这些选项之一,它什么也不做。我怀疑您想要的是用 if-else-if-else-if-...
块替换开关。看来您正在为基本语法而苦苦挣扎,尤其是控制流。要获得更多信息,您应该查看本站点的第 5 章:http://www.learncpp.com/。我认为这将帮助您更好地理解您的代码在做什么。
我的密码猜测有问题。我想制作一个只有电脑猜测和答案的游戏。我尝试编写代码,但结果是无限循环。
这是我的代码:
#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;
}
请帮我解决这个问题。
我认为您对 switch 语句的工作原理感到困惑。如所写,您的代码查看 number
并在数字为 1
时执行某些操作(在这种情况下它执行情况 1),或者如果 number
为 2
,或 3
。如果 number
不是这些选项之一,它什么也不做。我怀疑您想要的是用 if-else-if-else-if-...
块替换开关。看来您正在为基本语法而苦苦挣扎,尤其是控制流。要获得更多信息,您应该查看本站点的第 5 章:http://www.learncpp.com/。我认为这将帮助您更好地理解您的代码在做什么。