def h(self, game: GameState): if game.terminal(): return game.winner() for _ in range(self.nbr_rollouts): self.do_rollout(game) return self.h_score(self.choose(game))
def play(self, game: GameState, verbose=False): if self.alternate: temp = self.actionModel1 self.actionModel1 = self.actionModel2 self.actionModel2 = temp states = [] hs = [] if verbose: print(game) while not game.game_over(): actingModel = self.actionModel1 if game.turn() else self.actionModel2 move, h = actingModel.action(game) states.append(game.__copy__()) hs.append(h) game.push(move) if verbose: print("move: " + str(move) + " h: " + str(h)) print(game) return game.winner(), states, hs