我正在尝试编写Code Bullet's AI tutorial的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);
}
}
生成0到7(含)的原因是因为点的移动被编码为以下switch语句(其中x和y是网格上的点的位置:
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--;
}
理论上,随着方向随机初始化,点应从其起始位置随机移动到整个网格。但是,当我运行代码时,它们都只是向下移动并向左移动。谁能帮我?可以找到完整代码here,相关行为55-256。提前谢谢!
答案 0 :(得分:0)
如果没有break
语句,则继续执行下一个案例块...
结果,总是执行情况7,偏向屏幕左下方的移动。