Constructed a graph that represents the entire game states in which the nodes are possible states and an edge exists between two nodes if there is a valid move between the states using Graph library in Racket
Developed an intuitive GUI using 2htdp/image and 2htdp/universe packages to show the live preview
The solver is implemented to give the next possible best move from any state using Breadth First Search