Polyomino puzzle solver