def _run_minimax(self, max_depth) -> State: minimax = Minimax(State(self._grid), terminal_test_func=self._create_terminal_test(max_depth), child_states_func=self._child_states, eval_func=self._eval) best_child, _ = minimax.decision() return best_child