Sliding Block Puzzle Solver

Left = Start | Middle = Solution | Right = Goal (white is any non-empty block)