【发布时间】:2020-10-18 15:18:17
【问题描述】:
我是 Java 和 OOP 的初学者。 我正在创建一个“带粒子的盒子”的模拟器。以下是程序所需的内容:
- 具有固定宽度和高度的盒子,带有“-”和“|”的图案
- x、y 位置的粒子(0
- 8个方向的枚举方向
- move() 随机方向的所有粒子,如果其中任何一个发生碰撞(相同位置),则创建一个新粒子
我一直在努力寻找答案是,我怎样才能用循环创建随机数量的粒子,并且仍然可以在循环外对它们进行处理?因为我希望每个创建的粒子在迭代后保留以进一步执行 move()。这种访问有什么语法吗?
这是我尝试过的,有时会输出 2、3 个粒子,有时没有:
public Box() {
particle = new Particle();
for (int i = 0; i <= HEIGHT + 1; i++) {
for (int j = 0; j <= WIDTH + 1; j++) {
if (i == 0 || i == HEIGHT + 1 && i != particle.getY()){
System.out.print("-");
} else {
if (j == particle.getX() && i == particle.getY()) {
System.out.print("*");
} else if (j == 0 || j == WIDTH + 1 && j != particle.getX()) {
System.out.print("|");
} else if (i != 0 && i != HEIGHT + 1) {
System.out.print(" ");
}
}
}
System.out.println("");
}
}
【问题讨论】: