A solver for the Eight Puzzle, built to improve my understanding of the Scala language