我正在为学校设计HILO游戏,该程序通过询问数字是高还是低来猜测用户数。我的代码在猜测正确的地方工作,但是当用户“作弊”,猜测数字但用户再次选择高低时,我还需要一个案例。
这就是我的代码:

    void GuessNumber(int lowVal, int highVal)
     {
        int midVal = 0;
        char userAnswer = '-';

        midVal = (highVal + lowVal) / 2;

        cout << "Is it " << midVal << " (l,y,h)? " << endl;
        cin >> userAnswer;

        if ((userAnswer != 'l') && (userAnswer != 'h'))
      {
         cout << "Your number is " << midVal << endl;
      }
       else {
         if (userAnswer == 'h')
          {
            GuessNumber(lowVal, midVal);
          }
            else if (userAnswer == 'l')
            {
             GuessNumber(midVal, highVal);
            }
           }

             return;
          }

最佳答案

除非您不知道,否则您不应该要求用户更高/更低。因此,只有当您知道答案是两个值(N或N + 1)之一,并且询问用户它是否为N且他们说它较低时,才可以检测到作弊(或者您询问它是否为N + 1,并且他们说更高)。

其他所有情况都不值得担心,因为或者您已经知道确切的答案(用户无法作弊,请告诉他们您知道答案),或者至少剩下三个可能的答案(在这种情况下,任何答案都是正确的) )。

关于c++ - 找不到号码的HILO游戏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46385907/

10-13 08:22