Skip to content

Instantly share code, notes, and snippets.

@tarynsauer
Last active December 29, 2015 05:29
Show Gist options
  • Save tarynsauer/7621773 to your computer and use it in GitHub Desktop.
Save tarynsauer/7621773 to your computer and use it in GitHub Desktop.
def get_best_move
get minmax_score for all_open_positions
return ID of cell with highest score
def get_score(cell, player)
player == curent_player ? 1 : -1
def minmax_score(cell, player)
player.add_marker(cell)
return get_score(cell, player) if game_winning_move?
if player == current_player
best = -999
available_cells.each do |cell|
val = minimax_score(cell, player.opponent)
best = max(best, val)
remove_marker(cell)
return best
else
best = 999
available_cells.each do |cell|
val = minimax_score(cell, player)
best = min(best, val)
remove_marker(cell)
return best
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment