Java 随机颜色重复

Java 随机颜色重复,java,arrays,random,colors,Java,Arrays,Random,Colors,如何阻止连续选择颜色 我试图避免在从数组中选择的行中重复相同的颜色。我尝试过比较颜色是否相等,但在再次随机选择时无法跳过颜色 Color color[]={Color.YELLOW,Color.MAGENTA,Color.BLACK,new Color(0x964B00),new Color(0xB57EDC)}; Random rand=new Random(); Color newColor = color[rand.nextInt(5)]; for(int i=0;i<5;i++

如何阻止连续选择颜色


我试图避免在从数组中选择的行中重复相同的颜色。我尝试过比较颜色是否相等,但在再次随机选择时无法跳过颜色

Color color[]={Color.YELLOW,Color.MAGENTA,Color.BLACK,new Color(0x964B00),new Color(0xB57EDC)};

Random rand=new Random();
Color newColor = color[rand.nextInt(5)];

for(int i=0;i<5;i++){
    if(newColor.equals(color[i]));{
        newColor=color[rand.nextInt(5)];
    }
    myPanel.colorArray[myPanel.mouseDownGridX][myPanel.mouseDownGridY] = newColor;
    myPanel.repaint();
}

您的问题不是很清楚,您当前的代码显示了一个小的选择大小,将经常重复。如果您的问题理解为:

如何创建一个随机数,其中新的数字不是前一个

注意:代码是从头开始的-它应该以随机排除的方式显示主要思想


我试图避免在从数组中选择的行中重复相同的颜色。我试过比较颜色是否相等,但在再次随机选择时无法跳过颜色。你的问题是什么?为什么到目前为止它是缩进的?我猜你一定有很多嵌套。对不起,我是StackOverflow的新用户。我的问题是代码下面的注释。如何阻止连续选择相同颜色?可能重复@Dav1497如果此答案解决了您的问题,请接受此答案:单击答案左侧的灰色复选标记。
Color color[]={Color.YELLOW,Color.MAGENTA,Color.BLACK,new Color(0x964B00),new Color(0xB57EDC)};

// remember the previous color somehow
int previousColorIndex = 0;

// -----

newColorIndex = randomExclude(previousColorIndex)

myPanel.colorArray[myPanel.mouseDownGridX][myPanel.mouseDownGridY] = color[newColorIndex];
myPanel.repaint();

previousColorIndex = newColorIndex

// -----

public static int randomExclude(int previous)
{
  Random rand=new Random();
  int random =rand.nextInt(5);

  if(previous == random)
    {
        return randomExclude(previous);
    } 
  }

  return random;
}