It's Thursday already, so time for another code puzzler. The idea is simple: solve the coding problem as efficiently as you can, in any language or framework that you find suitable.
Note: Even though there really is nothing stopping you from finding a solution to this on the internet, try to keep honest, and come up with your own answer. It's all about the participation!
Solve the 15 Puzzle
You might call them sliding puzzles, mystic squares or one of the many other names. The idea is that you are presented with a jumble of numbers in a grid of 16 spaces, with 15 subsequent numbers and one blank space. An example of a solved puzzle looks like this:
Today's challenge is to write a program that will solve such a puzzle, sliding one number at a time in order to get the numbers displaying in order as above.
Catch up on all our previous puzzlers here