我创建了一个名为CircleBug的新类,它与BoxBug几乎是一样的,但它只转了一次(除了2 ),从而使bug变成了一个“圆圈”,而不是一个盒子。
这是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();
}
}这是循环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。
发布于 2014-01-21 17:55:14
不过,我解决了这个问题--我把BoxBug作为源代码包,所以它运行了这个包。
https://stackoverflow.com/questions/21243246
复制相似问题