A basic implementation of the free cell card game in Python 3.x, using various search algorithms to beat the game, including breadth first, depth first, best first, and A*.
The node class creates objects representing the state of the game for every move made. The root node represents the inital state of the game; free cells and foundation piles are empty.
The searchLibrary file contains an implementation of all the aforementioned search algorithms. I have included 10 sample initial states of the game.
The heuristic function I came up with for best-first search and A* is not even remotely close to qualifying as "not that terrible", but I am working on it!