Algorithms, Part I - Programming Assignment 4: 8 Puzzle