solve_game() is passed the _initial_ game state, not the most recent