Basic working version

World description was changed so that coordinates only appear once in
any given list. Their type fields are an ORed together value of all
their different types. The PLAYER type was removed. Instead, MyFrame
has a coordinate field, playerLocation, which keeps track of where the
player is. Since each Coordinate now has all the information about that
position, the equals method was changed to only take into account x and
y values, not type. This makes a number of things easier, including
checking to see if an ArrayList contains the coordinate (you can just
use ArrayList.contains). For some reason, Java’s standard TreeSet
(including TreeMap) does not call the equals() method to check if it
contains a value. (I think it might use compareTo, which is more
complicated to implement.) So instead I of using sets and maps, I used
all ArrayLists. A number of methods were added to the AI class, and the
findMove() method was completely rewritten using the algorithm Walter
and I talked about last week. It’s not perfect. I tried it on a 10x10
grid, and it was complete crap, but for the 4x4, it’s pretty good. And
of course, we can continue improving it.