基本上我让我的类将网格扩展到11乘11,构造函数被调用但不改变网格。关于为什么会有很多意见的任何输入或信息。我在下面发布了我的代码:
import info.gridworld.actor.*;
import info.gridworld.grid.BoundedGrid;
public class ChangeGrid extends ActorWorld{
private static final int SIZEROW = 11;
private static final int SIZECOL = 11;
public ChangeGrid()
{
super(new BoundedGrid<Actor>(SIZEROW, SIZECOL));
System.out.println("test");
}
}
import info.gridworld.actor.Bug;
public class XBug extends Bug {
/**
* A <code>BoxBug</code> traces out a square "box" of a given size. <br />
* The implementation of this class is testable on the AP CS A and AB exams.
*/
private int steps;
private int sideLength;
private int x = 0;
private static ChangeGrid object = new ChangeGrid();
/**
* Constructs a box bug that traces a square of a given side length
* @param length the side length
*/
public XBug(int length)
{
steps = 0;
sideLength = length;
}
/**
* Moves to the next location of the square.
*/
public void act()
{
if (steps < sideLength && canMove())
{
if(x==0)
{
turn();
}
move();
steps++;
x++;
}
else
{
turn();
steps = 0;
}
}
}
答案 0 :(得分:0)
创建世界时未调用构造函数。您在Actors
类中调用它,然后您甚至不调用.show()
方法。您只需更改您的跑步者班级即可拨打ChangeWorld
而不是ActorWorld
。
以下是您的代码示例。
public class Runner
{
public static void main(String[]args)
{
ChangeWorld world = new ChangeWorld();
XBug bug = new XBug();
world.add(bug);
world.show();
}
}