I am big sucker for puzzle and strategy games. So it should come as no surprise to anyone that my favorite iPhone game is UnblockMe from Kira Games. The object of the game is deceptively simple.
There's one red block, one exit, and a bunch of normal blocks in between. The objective of the game is simply to slide and move all of the blocks in such a way as to allow the red block to move unimpeded into the exit. Blocks can move in one of two directions: horizontally or vertically. In a sense, the game is a more sophisticated variation on the sliding block puzzle. The version created by Kira Games comes with a total of 3000 levels, 600 for each level of difficulty: beginner, intermediate, advanced, expert, and bonus. At just $0.99, the game can be played for hours on end. Even a genius would have a hard time beating all 3000 levels in anything less than 2 full days of non-stop play. So far, I've beaten 1658 2732 levels. I usually play whenever I'm either waiting for the train or am on it.
It's hard to say that there's any algorithm one can devise to solving the puzzles, but there's definitely a pattern that emerges. Groups of puzzles tend to have similar solutions even though they're not exactly the same. It would probably be very straight-forward to create an AI program to solve each puzzle using a basic depth-first search with some basic alpha-beta pruning. There's a finite number of options after all.
Two basic principles I've been able to distill are as follows:
Freedom of movement: it's always best to favor moves and positions that allow more movement and freedom of other pieces.
One step back, two steps forward: to win sometimes you have to move the red block in a way that closes off the door. Many of the more challenging solutions make use of this concept again and again.
I have more ideas on this topic, but recording them seem too pedantic and uninteresting, even for me.
On a side note, there was a Flash version of this game that I remember playing over 6 years ago. It was something my friend Ezra had introduced to me, but I can't remember what the name of the game was.