HILO游戏,当找不到号码时

时间:2017-09-24 02:08:03

标签: c++ recursion

我正在为学校开展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;
          }

1 个答案:

答案 0 :(得分:2)

除非您不知道,否则不应要求用户更高/更低。所以你唯一能够发现作弊的时候就是你知道答案是两个值(N或N + 1)中的一个并且你问用户是否是N并且他们说它更低(或者你询问它是否为N + 1并且他们说更高。)

所有其他案例都不值得担心,因为你们已经知道确切的答案(用户不能欺骗你,告诉他们你们知道答案),或者至少还有三个可能的答案(在这种情况下,任何回复)可能是正确的。)

相关问题