Java 如何获得0~600之间间隔为10的随机值?
我有一个600x600的屏幕,我想把它分成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
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。