JSNumbers

Rules

Goal:
Move every block exactly once.
Movement:
Every block can be moved horizontally, vertically or diagonally. The number on the block indicates how far the block must be moved. Other blocks between the start and destination don't prevent a movement, but the destination field must be free. All possible destinations are highlighted when you select a block.