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;
}