【问题标题】:Java Program for Number Guessing Game [closed]猜数游戏的Java程序[关闭]
【发布时间】:2014-10-29 23:16:35
【问题描述】:

我是java初学者。请提供一个 Java 示例程序来玩猜数游戏。游戏运行如下:

用户在他的脑海中选择一个数字并输入“准备好”以向计算机表明他已准备好

开始播放。

计算机会提出一系列问题以得出用户心目中的数字。用户只能

回答“更高”、“更低”或“是”。

当用户回答“是”或“结束”时游戏结束。

例子:

用户在他的脑海中选择了数字 40。

计算机:数字是 30 吗?

用户:更高

计算机:数字是 50 吗?

用户:下级

计算机:数字是 35 吗?

用户:更高

计算机:数字是 40 吗?

用户:是的

【问题讨论】:

  • 你试过为它写一些java代码吗?首先尝试花几个小时编写程序,并在遇到问题时向我们展示,然后我们将为您提供帮助。我们会也不应该为您完成这项工作。
  • 欢迎来到 StackOverflow;我相信您误解了本网站的目的。您应该提供您遇到的特定开发问题,而不是要求人们完成您的工作。首先解释你尝试了什么、得到了什么以及你不明白什么。
  • 好问题,先试试看,如果有问题再回来。!!

标签: java


【解决方案1】:

首先:您不应该在没有任何自己的代码的情况下要求提供示例代码 - 这很可能是被否决的原因。

接下来,您应该决定您希望程序如何猜测。例如,这里的二分算法可能对您有用。您需要设置一些不同的初始代码,以绑定此人的号码。

例如:(伪代码)

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++ == 来比较字符串的值,我预计这可能是您会遇到的问题...

【讨论】:

  • 这是我写的代码。但它并没有按照我的要求完全发挥作用。
  • 在哪里?我没有看到任何代码,或者实际上没有任何代码示例 - 只是您正在寻找的输出。尝试形成一些代码,或者至少是一个代码结构。我怀疑如果您可以形成类似于我在此答案中所写的内容,并添加更多细节,那么您将非常接近最终代码的样子。从那里,您只需要找到实现细节。链接问题 (stackoverflow.com/questions/17538182/getting-keyboard-input) 的第一个答案看起来可能对您的输入需求有所帮助。
【解决方案2】:

我不会为你编写或提供程序,这是非常基本的。

一些帮助您入门:

您需要使用 Scanner 对象从键盘读取。这个问题应该很好地涵盖了这部分:Getting Keyboard Input

您还需要了解布尔值。 Click here for that.

最后,您可能应该了解“关系运算符”,例如 > 大于、here for that。

【讨论】:

  • 感谢您的 cmets。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多