gpt4 book ai didi

java - 如何以单位步长获取 Math.random()

转载 作者:行者123 更新时间:2023-12-01 17:43:52 25 4
gpt4 key购买 nike

我正在尝试创建一个蛇游戏,其中我有 400x400 的 Pane ,并且蛇在 X 和 Y 轴上移动 20。通过这样做,我创建了一个 X 轴和 Y 轴步长为 20 的网格。

我想在 Pane 中随机生成一个水果,但我希望宽度和高度在网格中,因此它应该以 20 (0, 20, 40, 60 , 80, ... , 400) 的步长生成。

我可以使用 Math.random()*400 来获取范围,但我无法给它单位步长。

我发现这个问题正是我所问的,但解决方案是基于 lua 的 math.random(): math.random function with step option?

这是我如何翻译蛇的位置:

if (input.equals(KeyCode.W.toString()) || input.equals(KeyCode.UP.toString()))
if (snakes.get(0).getY() == 0)
movement.stop();
else
snakes.get(0).setY(snakes.get(0).getY() - 20);

*Snakes 是一个矩形数组列表,它在吃食物时会扩展,我只想让头部吃食物*食物是一个在随机位置生成的圆圈

这是我检查他们是否联系的方法:

if (food.getCenterX() == snakes.get(0).getX() && food.getCenterY() == snakes.get(0).getY())
score++;
setScore();

我将蛇移到食物上,但 x 和 y 位置永远不会匹配,除非我自己在网格处生成食物(例如 [20,40] 或 [60, 200])。

是否有其他替代方案或随机单位步骤或我在 stackoverflow 上找不到的其他问题可以帮助我?

最佳答案

如果您需要整数值,可以使用Random.nextInt(intbound)。这将在 20x20 矩阵内生成坐标。

Random r = new Random();
int x = r.nextInt(20)*20; // values from 0 to 19 inclusively
int y = r.nextInt(20)*20;

关于java - 如何以单位步长获取 Math.random(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57777780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com