CircleBug と呼ばれる新しいクラスを作成しました。これは BoxBug とほぼ同じですが、2 回を除いて 1 回回転するため、バグがボックスではなく「円」になります。
カレッジボードの 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を使用しています。