Java 点主要在一个方向上移动,而不是随机移动

Java 点主要在一个方向上移动,而不是随机移动,java,Java,我正在尝试编写的Java版本,虽然我已经成功构建了JFrame,并且我得到了正确渲染的点,但它们的行为与预期不符 在上下文中,当点的总体被初始化时,它们被一个“大脑”初始化,这个“大脑”是1000个方向的随机列表,告诉它们如何在每一步移动。这些方向由以下代码生成: //Further up they are initialized with 1000 as the argument //Also, an int array called directions is an attribute pu

我正在尝试编写的Java版本,虽然我已经成功构建了JFrame,并且我得到了正确渲染的点,但它们的行为与预期不符

在上下文中,当点的总体被初始化时,它们被一个“大脑”初始化,这个“大脑”是1000个方向的随机列表,告诉它们如何在每一步移动。这些方向由以下代码生成:

//Further up they are initialized with 1000 as the argument
//Also, an int array called directions is an attribute
public Brain(int size){
  directions = new int[size];
  Random dir = new Random();
  for (int i = 0; i < size; i++){
    directions[i] = dir.nextInt(8);
  }
}

从理论上讲,由于方向是随机初始化的,所以点应该从其起始位置在整个网格上随机移动。然而,当我运行代码时,它们都只是向下移动并离开。有人能帮我吗?可以找到完整代码,相关行为55-256。提前谢谢

在没有
break
语句的情况下,继续执行下一个case块


因此,情况7始终被执行,使移动偏向屏幕的左下角。

No
break
!switch语句在任何地方都没有break语句,因此当运行相应case语句之后的所有行时,它们将无法按预期工作。详情请看报纸。啊,是的,就是这样。我已经有一段时间没有使用开关盒了,非常感谢!
switch (direction){ //Slightly simplified here.
  case 0: this.y--;
  case 1: this.y--; this.x++;
  case 2: this.x++;
  case 3: this.x++; this.y++;
  case 4: this.y++;
  case 5: this.y++; this.x--;
  case 6: this.x--;
  case 7: this.x--; this.y--;
}