
i'm trying to make a bug multiply when it hits a rock or another bug or a side the bug will remove itself from the grid and add 2 bugs to a empty location. It "steps" but does not "run"
here is my code:
import info.gridworld.grid.Location; import info.gridworld.grid.Grid; import java.util.Random; import info.gridworld.actor.Bug; import info.gridworld.actor.Actor; import info.gridworld.actor.ActorWorld; import info.gridworld.world.World; import java.util.ArrayList; import java.lang.Object;
public class MultiplyingBug extends Bug {
private int steps ;
private int sideLength;
public MultiplyingBug(int length)
{
steps = 0;
sideLength = length;
}
/**
* Moves to the next location of the diagnol.
*/
public void act()
{
if (steps < sideLength && canMove())
{
move();
steps++;
}
else
{
turn();
turn();
steps = 0;
}
Grid<Actor> gr = getGrid();
if (gr == null)
{
return;
}
//Use RandomGenerator to determine where to put the bug on the grid
Random randomGenerator = new Random();
for ( int idx = 0; idx <= 9; idx++)
{
randomGenerator.nextInt();
randomGenerator.nextInt();
//when a bug cannot move , creates a new bug in new location
if (canMove() == false)
{
Location old = getLocation();
removeSelfFromGrid();
MultiplyingBug NewBug= new MultiplyingBug(100);
Location another = new Location (randomGenerator.nextInt(10), randomGenerator.nextInt(10));
NewBug.putSelfInGrid(gr, another);
MultiplyingBug NewBug2= new MultiplyingBug(100);
Location another2 = new Location (randomGenerator.nextInt(10), randomGenerator.nextInt(10));
NewBug2.putSelfInGrid(gr, another2);
}
}
} }
and Here is my error...:
(it runs at first but when the bug hits a side, the error occurs and i exit the error but run does not work anymore)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: This actor is not contained in a grid. at info.gridworld.actor.Actor.removeSelfFromGrid(Actor.java:136) at MultiplyingBug.act(MultiplyingBug.java:90) at info.gridworld.actor.ActorWorld.step(ActorWorld.java:68) at info.gridworld.gui.GUIController.step(GUIController.java:134) at info.gridworld.gui.GUIController$2.actionPerformed(GUIController.java:109) at javax.swing.Timer.fireActionPerformed(Timer.java:271) at javax.swing.Timer$DoPostEvent.run(Timer.java:201) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
thank you...PLEASE HELP ME!!

ignore the comment " move to the next location of diagonal...

freaking answer my question!!!!!!!!
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.