Java 同一颜色的颜色不超过两种

Java 同一颜色的颜色不超过两种,java,Java,我调用了一个方法来获取八个对象的随机颜色。如果一行中三个对象的颜色相同,则该颜色无效。只有一个或两个相同颜色的颜色是有效的。我认为我的代码应该可以工作,但我仍然得到了三个对象在一行八个山姆颜色!我做错了什么?也许可以用一种更好更简单的方式来做?欢迎提出建议 循环的一部分,以获得八个随机数 for (int j = 0; j < 8; j++) { // 8 objects in each column // Call method to get random color int colo

我调用了一个方法来获取八个对象的随机颜色。如果一行中三个对象的颜色相同,则该颜色无效。只有一个或两个相同颜色的颜色是有效的。我认为我的代码应该可以工作,但我仍然得到了三个对象在一行八个山姆颜色!我做错了什么?也许可以用一种更好更简单的方式来做?欢迎提出建议

循环的一部分,以获得八个随机数

for (int j = 0; j < 8; j++) { // 8 objects in each column

// Call method to get random color
int color = getRandomColor(j);
试试这个:

public int getRandomColor(int j){
  int color = randomNumber1.nextInt(8);
  colors[j] = color;

  while(j>1 && colors[j-1] == color && colors[j-2] == color){
    color = randomNumber1.nextInt(8);
    colors[j] = color;
  }
return color;
}

您需要
而不是
如果
。另外,您再次调用
getRandomColor
,但您没有对结果做任何操作。我使用了一段时间,但随后应用程序关闭了!关闭?你确定吗?它并不是简单地进入无限循环?为了更快地获得更好的帮助,请发布一条消息。@Lister先生,它不应该这样做,除非出于某种原因
randomNumber1。nextInt(8)
总是返回相同的颜色
public int getRandomColor(int j){
  int color = randomNumber1.nextInt(8);
  colors[j] = color;

  while(j>1 && colors[j-1] == color && colors[j-2] == color){
    color = randomNumber1.nextInt(8);
    colors[j] = color;
  }
return color;
}