Java 如何获得0~600之间间隔为10的随机值?

Java 如何获得0~600之间间隔为10的随机值?,java,random,Java,Random,我有一个600x600的屏幕,我想把它分成10个方块,这样我就可以玩蛇游戏了,所以我需要把食物分成这些方块 我想到的代码是: x.nextInt(10)*x.nextInt(6)*x.nextInt(10) 这不起作用,即使它起作用,也有多个值可以达到20,比如说1*2*10,2*1*10 所以我也想到了这个, (int)(x.nextInt(600)/10)*10 但它并没有使间隔10 我也想到了这一点: Integer.parseInt(Double.toString(x.nextInt

我有一个600x600的屏幕,我想把它分成10个方块,这样我就可以玩蛇游戏了,所以我需要把食物分成这些方块

我想到的代码是:

x.nextInt(10)*x.nextInt(6)*x.nextInt(10)
这不起作用,即使它起作用,也有多个值可以达到20,比如说1*2*10,2*1*10

所以我也想到了这个,

(int)(x.nextInt(600)/10)*10
但它并没有使间隔10

我也想到了这一点:

Integer.parseInt(Double.toString(x.nextInt(600)/10))*10
但它非常愚蠢,而且不起作用,会给出一个错误

如果您不明白我想要什么,以下是结果: 随机对x和y: 10, 60 420, 170 550, 480 80600

以下是我不想要的: 14, 52 88, 19 551, 529 415550

我如何管理逻辑以使此间隔为随机值?

您可以尝试:

(int)(Math.random() * 60) * 10
从本质上讲,这会找到一个介于0和59之间的随机整数,然后将其乘以10,这样数字之间的间隔就为10

或者,您可以利用整数除法并使用

(int)(Math.random() * 600) / 10 * 10
其原理相同。

您可以尝试:

(int)(Math.random() * 60) * 10
从本质上讲,这会找到一个介于0和59之间的随机整数,然后将其乘以10,这样数字之间的间隔就为10

或者,您可以利用整数除法并使用

(int)(Math.random() * 600) / 10 * 10

这与原理相同。

你可以通过生成一个介于0和60之间的整数来解决这个问题,或者我猜你真的想要0到59,因为一个平铺是10像素宽的,应该在屏幕上,然后将该整数乘以10。

你可以通过生成一个介于0和60之间的整数来解决这个问题,或者我猜你真的想要0到59,因为一个平铺是10像素宽的,应该在屏幕上,然后将该整数乘以10。

有一个GridSquare类,随机选择坐标从0到10,然后使用toScreenArea函数,将坐标乘以每平方像素数,在屏幕上找到合适的点,以放置这些正方形。

有一个GridSquare类,随机选择坐标从0到10,然后使用toScreenArea函数,将坐标乘以每平方像素数,在屏幕上找到合适的点,以放置这些正方形。

您应该使用Math.random

 int random = (int )(Math.random() * 60 +1) * 10;
说明: random方法返回一个介于0.0和0.999之间的随机数。把它乘以60,上限变为0.0到59.999,当你加1时,它变为1.0到60.999,现在当你截断到int,你得到1到60。然后乘以10,得到10到600之间的10的倍数

注意:如果要从0到60,请删除1并使用

 int random = (int )(Math.random() * 61) * 10;

你应该使用Math.random

 int random = (int )(Math.random() * 60 +1) * 10;
说明: random方法返回一个介于0.0和0.999之间的随机数。把它乘以60,上限变为0.0到59.999,当你加1时,它变为1.0到60.999,现在当你截断到int,你得到1到60。然后乘以10,得到10到600之间的10的倍数

注意:如果要从0到60,请删除1并使用

 int random = (int )(Math.random() * 61) * 10;

得到0-60之间的随机数,然后乘以10?哈哈,我的逻辑级别是负数,谢谢!得到0-60之间的随机数,然后乘以10?哈哈,我的逻辑级别是负数,谢谢!虽然OP的意思是60,他可能是59。虽然OP的意思是60,他可能是59。