首页 > 解决方案 > java的反向猜谜游戏

问题描述

我一直在尝试创建一个反向猜谜游戏,其中用户将输入一个数字,然后程序/机器人将尝试猜测用户给出的数字。我在程序中遇到了随机生成器的问题。例如,当用户输入 157 等数字时,机器人会生成一个数字。如果机器人给出的数字低于 157,则用户将单击较高的按钮(如果数字较高,则单击较低的按钮)。我的问题是它没有正确生成,只是给出一个随机数。

我已经尝试更改公式,Math.random()但我仍然无法弄清楚。

这是我在 netbeans 中的 jbutton(更高)代码:

if(con > con2) {
    int generator = (int)(Math.random() * (1 + high - low))+low;
    String conv = Integer.toString(generator);
    jTextField2.setText(conv);
}

标签: javarandom

解决方案


您的问题很可能不在于您的随机数生成。当我运行以下命令时:

int high = 20;
int low = 10;
for(int i = 0; i < 20; ++i)
{
    int generator = (int)(Math.random() * (1 + high - low))+low;
    System.out.print(generator+" ");
}

我得到以下输出:

18 19 12 11 19 17 15 19 14 16 16 14 10 20 13 20 11 14 20 15

这会生成 10 到 20 之间的随机数,包括 10 到 20。因此,如果您在生成随机数时遇到问题,有几种可能性:

  • 你的jTextField2.setText价值被忽视了
  • 您的jTextField2.setText价值正在被覆盖
  • low你的价值观high并不是你认为的那样
  • 您的价值观正在同时/在您的low声明运行 之前被更改highif
  • (con > con2)您的if语句的条件永远不会满足,因此从一if开始就不会调用

    解决此问题的最佳方法是调试程序的其余部分,因为随机数生成显然是有效的。


  • 推荐阅读