import java.util.*;

public class Solver
{
    public Solver (boolean debug)
    {
        _debug = debug;
    }

    Vector<Tile> arrangement (Vector<Tile> tiles)
    {
        Vector<Tile> toReturn = new Vector<Tile>();
        int dimension = (int) Math.sqrt((double) tiles.size());

        if (_debug)
            System.out.println("Dimensions "+dimension+" by "+dimension);

        return toReturn;
    }

    private boolean _debug;
}
@@ -107,24 +107,31 @@
 %0A    %7D%0A%0A    
+public 
 Vector%3CTile%3E
@@ -164,16 +164,16 @@
  tiles)%0A
-
     %7B%0A  
@@ -394,23 +394,529 @@
     
-return toReturn
+for (int i = 0; i %3C tiles.size(); i++)%0A        %7B%0A            Tile t = tiles.elementAt(i);%0A        %7D%0A%0A        return toReturn;%0A    %7D%0A%0A    private int numberOfMatchingEdges (Tile toCheck, Vector%3CTile%3E tiles)%0A    %7B%0A        int number = 0;%0A        %0A        for (int i = 0; i %3C tiles.size(); i++)%0A        %7B%0A            Tile t = tiles.elementAt(i);%0A%0A            if (!t.equals(toCheck))%0A            %7B%0A                for (int j = 0; j %3C 4; j++)%0A                %7B%0A%0A                %7D%0A            %7D%0A        %7D%0A%0A        return number
 ;%0A  

Update Solver.java