Ant Lab 1
Ants are wonderfully simple things that can behave in complex ways (kind of like a computer)! So why not see if we can program a simulation of some ants randomly walking around. As long as they don't know where food is, they will keep walking, and after short while, they will randomly change their direction.
Next we need to give them some knowledge. When they detect food, they will record the location of the food, and just go back and forth from their AntHill
to the the Food
supply. When the Food
runs out, they will forget the location, and go back into random walking, like before.
Finally, we will want to give them some communication skills. If they encounter another Ant
, they will share any information about food. (Maybe later you can make a subclass of Ant
called GeniusAnt
that will remember more than one food source, but for right now, an Ant
can only remember one thing at a time). You can always enhance your simulation by adding obstacles or ants from another colony that will fight with, or make a QueenAnt
so your colony can make another colony.
Before we make an Ant
we will be needing a way to test it (See Extreme programing for why it's a good idea to make a tester before the object you are testing). We will make a simple AntCorral
that will eventually hold Food
objects and AntHill
objects that spawn Ants
s as well as tell the all the objects in the AntCorrall
about the passage of time, so they will do something. The objects will implement an interface we will invent called Active
. Any object that is Active
will need to have a doSomething
method.
The starter code above will only show the passage of time with an increasing counter called ticks
. Feel free to add the the String message
to show information. Now let us make the first version of Ant
which will implement the Active
interface we have invented.