【问题标题】:Guessing a secret number (computer vs computer) - AI猜一个秘密数字(计算机与计算机)-人工智能
【发布时间】:2015-05-28 01:59:14
【问题描述】:

我的密码猜测密码有问题。我想做一个只有电脑猜测和答案的游戏。我试图编写代码,但结果是无限循环。

这是我的代码:

#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 语句中测试的值。除非猜测是 1,2 或 3,否则代码永远不会进入开关,也不会选择新数字。即使你得到 1、2 或 3,结果也几乎肯定不是你想的那样。
  • 你认为switch(number) 会做什么?

标签: c++ numbers artificial-intelligence


【解决方案1】:

我认为您对 switch 语句的工作方式感到困惑。如所写,您的代码查看number,如果数字为1(在这种情况下它执行案例1),或者number23,则执行某些操作。如果number 不是这些选项之一,它什么也不做。我怀疑你想要的是用if-else-if-else-if-... 块替换开关。看来您正在为基本语法而苦苦挣扎,尤其是控制流。要获得更多信息,您应该查看本网站的第 5 章:http://www.learncpp.com/。我认为这将帮助您更好地了解您的代码在做什么。

【讨论】:

  • 感谢您的建议,威廉。我选对了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多