2 classes are used : Game and State
State class is use to define the structure of the state(configuration) and also provides functionality to move the empty space and generate child states from the current state. Game class is use to accept the initial and goal states of the N-Puzzle problem and provides functions to calculate the A-star( f(x)=g(x)+h(x) ) of any given state.