我正在为学校开发一个 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/