Difficult Puzzle

I took this puzzle from an old SNES game called Lufia 2: Rise of the Sinistrals. In the game, it is considered to be the "worldest most difficult trick," and it is hard! I had to use a walkthrough to beat it... but the solution took well over 200 steps, and I thought there had to be an easier way. I simplified the walkthrough's solution to 176 steps, but I still thought I could do better. So I wrote this program for both manual and automatic analysis of the game. What I found (and you can see how to generate the same findings by looking at the generateAllSolutions() method in DifficultPuzzle.java if you are so inclined) is that there is a solution only requiring 116 steps. Assuming my program is flawless (how could it be otherwise?), this is the best solution.

Puzzle Game

Solution file with steps to beat the game in 116 steps.

DifficultPuzzle source file.

PuzzleBoard source file.

SimplePuzzle source file.

Move source file.