我创建了一个名为 CircleBug 的新类,它与 BoxBug 几乎相同,除了它会转一次,除了 2,因此将错误变成“圆圈”而不是框
这是在 Collegeboard gridworld 手册中找到的 BoxBug:
import info.gridworld.actor.Bug;
public class BoxBug extends Bug
{
private int steps;
private int sideLength;
/**
* Constructs a box bug that traces a square of a given side length
* @param length the side length
*/
public BoxBug(int length)
{
steps = 0;
sideLength = length;
}
/**
* Moves to the next location of the square.
*/
@Override
public void act()
{
if (steps < sideLength && canMove())
{
move();
steps++;
}
else
{
turn();
turn();
steps = 0;
}
}
}
BoxBugRunner:
import info.gridworld.actor.ActorWorld;
import info.gridworld.grid.Location;
import java.awt.Color;
public class BoxBugRunner
{
public static void main(String[] args)
{
ActorWorld world = new ActorWorld();
BoxBug alice = new BoxBug(6);
alice.setColor(Color.ORANGE);
BoxBug bob = new BoxBug(3);
world.add(new Location(7, 8), alice);
world.add(new Location(5, 5), bob);
world.show();
}
}
这是我的 Circle Bug 和 CircleBugRunner 代码:
package circlebug;
import info.gridworld.actor.Bug;
public class CircleBug extends Bug {
private int steps;
private int sideLength;
public CircleBug(int length) {
steps = 0;
sideLength = length;
}
@Override
public void act() {
if (steps < sideLength && canMove()) {
move();
steps++;
} else {
turn();
steps = 0;
}
}
}
圈虫跑者:
package circlebug;
import info.gridworld.actor.ActorWorld;
import info.gridworld.grid.Location;
import java.awt.Color;
public class CircleBugRunner {
public static void main(String[] args) {
ActorWorld world2 = new ActorWorld();
CircleBug alice2 = new CircleBug(6);
alice2.setColor(Color.RED);
CircleBug bob2 = new CircleBug(3);
bob2.setColor(Color.BLUE);
world2.add(new Location(6, 6), alice2);
world2.add(new Location(3, 3), bob2);
world2.show();
}
}
这是我的问题。当我运行 CircleBug 时,它只运行 BoxBug。有人看到发生了什么吗?我正在使用 Netbeans 顺便说一句。