public class Taboggan
{
    public static final int MAP_COPIES = 100;  // hack

    public static final int MOVE_X = 3;
    public static final int MOVE_Y = 1;

    public Taboggan (Map original, boolean debug)
    {
        _maps = new Map[MAP_COPIES];
        _maps[0] = original;

        _position = new Coordinate(0, 0);
        _mapIndex = 0;
        _debug = debug;
    }

    public void move ()
    {
        
    }

    private Map[] _maps;
    private int _mapIndex;
    private Coordinate _position;
    private boolean _debug;
}
@@ -290,88 +290,480 @@
    _
-position = new Coordinate(0, 0);%0A        _mapIndex = 0;%0A        _debug = debug;%0A
+mapIndex = 0;%0A        _numberOfTrees = 0;%0A        _position = new Coordinate(0, 0);%0A        _debug = debug;%0A    %7D%0A%0A    public void move ()%0A    %7B%0A        boolean finished = false;%0A%0A        while (!finished)%0A        %7B%0A            if (!_maps%5B_mapIndex%5D.validPosition(_position))%0A            %7B%0A                _mapIndex++;%0A%0A                _maps%5B_mapIndex%5D = _maps%5B0%5D;%0A%0A                _position = new Coordinate(_position.getX() + MOVE_X, _position.getY() + MOVE_Y);%0A        
     
@@ -773,42 +773,83 @@
     
+   
-public void move ()%0A
+     if (!_maps%5B_mapIndex%5D.finished(_position))%0A        
     %7B%0A
+%0A 
         
 %0A   
@@ -844,16 +844,80 @@
         
+   %7D%0A            else%0A                finished = true;%0A        %7D
 %0A    %7D%0A%0A
@@ -968,16 +968,48 @@
 pIndex;%0A
+    private int _numberOfTrees;%0A
     priv

Update Taboggan.java