均匀分布的颜色

时间:2015-10-15 11:43:06

标签: java

这是一个非常基本的问题,但我不能理解它,我很害怕。

我尝试做的是从3种颜色中生成某种颜色的正方形。每种颜色都有它自己的数字值(-1, 0, 1),然后我将把它添加到制作正方形网格的二维数组中。

对于蓝色,它有1/4的几率。对于红色来说,它有1/4的机会。对于白人来说,它有1/2的机会。

我理解如何使用Java的Random类,但是我不太确定如何实现我正在寻找的东西。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

创建一个(1D)数组,其大小为正方形,将每种颜色的比例数放入数组中,随机排序(Collections.shuffle),然后将它们全部弹出并放入2D数组中。 / p>

答案 1 :(得分:0)

  

有人能指出我正确的方向吗?

  • 创建int的正方形二维数组:int[][] matrix = new int[SIZE][SIZE]
  • 使用0到3之间的随机数填充
    对应(例如)
    • 0-1黄色
    • 2 blue
    • 3 red
  • 迭代2D数组并在每次迭代中:

    • draw a rectangle
    • 在每次内部迭代中增加y值(位置),在外部增加x
    • 根据数组的值指定颜色。
    • 如何?每次迭代执行类似此方法的内容

      //this will draw a square of size 50 at position x,y colored
      public void paint(Graphics g, int color){
        switch (color) {
        case 2:
          g.setColor(Color.blue);
          break;
        case 3:
          g.setColor(Color.red);
          break;
        default:
          g.setColor(Color.yellow);
          break;
        }
        g.drawRect(x,y,50,50);
      }
      

那就是它,我认为你已经足够实现你的目标了。