我正在为学校设计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/