Skip to content

Instantly share code, notes, and snippets.

@DanielSlater
Created October 20, 2017 19:39
Show Gist options
  • Save DanielSlater/04a3beef5b871ccbb2c01c7bbbb19183 to your computer and use it in GitHub Desktop.
Save DanielSlater/04a3beef5b871ccbb2c01c7bbbb19183 to your computer and use it in GitHub Desktop.
def monte_carlo_tree_search(board_state, side, number_of_samples):
results_per_move = collections.defaultdict(lambda: [0, 0])
for _ in range(number_of_samples):
result, move = monte_carlo_sample(board_state, side)
results_per_move[move][0] += result
results_per_move[move][1] += 1
move = max(results_per_move,
key=lambda x: results_per_move.get(x)[0] /
results_per_move[move][1])
return results_per_move[move][0] / results_per_move[move][1], move
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment