A while back I pokegrappled some sliding block puzzles into squeak.
This was done almost intirely in morphic using what was at hand with virtually no programming. It allow one to move various shaped block around on a board and 'solve' various puzzles.
Being a first effort it lacked the elegance of the java program available at the site below. But it wasn't bad for a zero lines of code project.
Sliding Piece Puzzles by Hirofumi Fujiwara (Japan) at:
for a great selection of puzzles that can be played with.
The second pass was to add a puzzleboard class that did elementary checking and rejected blocks to positions already occupied. I think this can be used for a wider class of puzzles like tangrams and jigsaw as well. Stay tuned for updates as I get what I have on the net.