我是java的初学者。请提供Java样本程序来玩猜数游戏。游戏的工作原理如下:
用户在脑海中选择一个号码并输入“准备好”以向计算机表明他已准备好
开始玩。
计算机会询问一系列问题,以达到用户想到的数字。用户只能
以“更高”,“更低”或“是”回应。
当用户回答“是”或“结束”时,游戏结束。
示例:
用户在脑海中选择了40号。
电脑:号码是30?
用户:更高
电脑:号码是50?
用户:低级
电脑:号码是35?
用户:更高
电脑:号码是40?
用户:是
答案 0 :(得分:4)
首先:您不应该在没有任何自己的代码的情况下要求提供示例代码 - 这可能是为什么这个代码被低估了。
继续,您应该决定您希望程序猜测的方式。例如,二分算法可能对您有用。您需要设置一些不同的初始代码,以限制此人的号码。
例如:(伪代码)
int guessLower=0;
int guessUpper=1000000;
int myGuess=10;
// Ask user to pick number
// Ask user if number is == guess
// If yes, finish.
// If the answer is higher than the guess, change guessLower to the value of guess, and change guess to halfway between guess and guessUpper.
// If the answer is lower, do the opposite (guessUpper = myGuess; myGuess = (guessLower + myGuess)/2;
// Repeat until finished
如果此人所构成的值不在您设定的限制范围内,则此(〜)代码将无效 - 因此请考虑首先询问它是否高于guessLower,并低于guessUpper。如果没有,请尝试将标记移动一些量。可以很容易地想象出更复杂的搜索算法,你应该注意整数和双精度等之间的差异。
在旁注中,为了比较字符串,您应该使用equals(...)
查找,例如input.equals("higher");
。不要使用C ++ ==
来比较字符串的值,我预计这可能是您遇到的问题......
答案 1 :(得分:1)
我不会为你编写或提供程序,这是非常基本的。
让你开始的几点:
您需要使用Scanner对象从键盘读入。这个问题应该很好地涵盖了这一部分:Getting Keyboard Input
你还需要了解布尔值。 Click here for that
最后你应该学习“关系运算符”,比如>大于,<小于等。检查here for that。