java - 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);
}
解决方案
您的问题很可能不在于您的随机数生成。当我运行以下命令时:
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
声明运行
之前被更改high
if
(con > con2)
您的if
语句的条件永远不会满足,因此从一if
开始就不会调用
解决此问题的最佳方法是调试程序的其余部分,因为随机数生成显然是有效的。
推荐阅读
- c++ - 如何使用 Ninja 在 C++ 中编译“Hello World”?
- php - 我们如何在 laravel php Blade tempalte 中为 foreach 循环定义一个循环变量
- mysql - 在 ssh 上远程运行脚本
- android - 如何知道用户是否点击屏幕
- mysql - 使用 .net 核心从谷歌云运行连接到谷歌云(mysql)
- java - Ubuntu 18.4 LTS 中的 Java 安装错误
- r - 如何反转ggdendrogram中的距离比例并在距离比例下添加标签?
- android - 在构建我的颤振应用程序时,它因 GradleExeption 而失败
- ruby-on-rails - 跳过现有项目轨道中权威人士的所有控制器操作的策略
- vue.js - 如何从我的 vueJS 表中制作一个可重用的组件?