java - 用随机颜色填充每个方 block

标签 java random stddraw

我试图用正方形填充整个屏幕,每个正方形填充不同的颜色。我能够生成充满正方形的整个屏幕,但我无法让它们成为随机颜色。这是我目前所拥有的:

import java.util.Random;

public class RGBRandom
{
  public static void main(String[] args)
{
StdDraw.setScale(0, 100);

for (int x = 0; x <= 100; x++)
{     
  for (int y = 0; y <= 100; y++)
  {
    int r = (int)Math.random()*256;

    int g = (int)Math.random()*256;

    int b = (int)Math.random()*256;

    StdDraw.setPenColor(r, g, b);
    StdDraw.filledSquare(x, y, 0.5);
  }
} 
}
}

最佳答案

表达式 Math.random() 生成一个介于 0 和 1 之间的实数(不包括 1)。您对 (int) 的强制转换有效地将其转换为 0。您需要将整个表达式括起来,以便在将随机数乘以 256 之后转换为 int

例如

int r = (int) (Math.random() * 256);

或者,正如 Nichar 所建议的那样,使用 Random 代替:

Random random = new Random();

...

int r = random.nextInt(256);
int g = random.nextInt(256);
int b = random.nextInt(256);

random.nextInt(256) 将为您提供一个介于 0 和 255(含)之间的随机数。最好在循环之外创建 Random 的实例。

关于java - 用随机颜色填充每个方 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35706707/

相关文章:

java - 找不到 onButtonClick 方法

c++ - 如何制作古怪的数学计算器? (最好是在 C++ 中,但其他的也可以。)

c++ - CURAND_STATUS_LAUNCH_FAILURE + CUDA 7.5

java - 从 java 使用 OData 服务

java - 使受包保护的 java 类在父包中可见

javascript - 我多次从随机数组中得到 undefined

java - 卡住移动的矩形

java - 随机游走解决方案问题

java - 躲避游戏中食物闪烁并且没有被吃掉

java - 读取 Oracle Java 8 gc 日志