猜一个秘密数字(计算机对计算机)- 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),或者如果 number2,或 3。如果 number 不是这些选项之一,它什么也不做。我怀疑您想要的是用 if-else-if-else-if-... 块替换开关。看来您正在为基本语法而苦苦挣扎,尤其是控制流。要获得更多信息,您应该查看本站点的第 5 章:http://www.learncpp.com/。我认为这将帮助您更好地理解您的代码在做什么。