Skip to content

Commit

Permalink
Fixed alphabeta_search
Browse files Browse the repository at this point in the history
  • Loading branch information
Chipe1 committed Mar 11, 2016
1 parent bb249b5 commit 3fdb931
Showing 1 changed file with 22 additions and 2 deletions.
24 changes: 22 additions & 2 deletions games.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,17 @@ def min_value(state, alpha, beta):
return v

# Body of alphabeta_search:
return max_value(state, -infinity, infinity)
v = -infinity
best_action = None
for a in game.actions(state):
val = min_value(game.result(state, a), alpha, beta)
if val > v:
v = val
best_action = a
if v >= beta:
break
alpha = max(alpha, v)
return best_action


def alphabeta_search(state, game, d=4, cutoff_test=None, eval_fn=None):
Expand Down Expand Up @@ -107,7 +117,17 @@ def min_value(state, alpha, beta, depth):
cutoff_test = (cutoff_test or
(lambda state, depth: depth > d or game.terminal_test(state)))
eval_fn = eval_fn or (lambda state: game.utility(state, player))
return max_value(state, -infinity, infinity, 0)
v = -infinity
best_action = None
for a in game.actions(state):
val = min_value(game.result(state, a), alpha, beta, 1)
if val > v:
v = val
best_action = a
if v >= beta:
break
alpha = max(alpha, v)
return best_action

#______________________________________________________________________________
# Players for Games
Expand Down

0 comments on commit 3fdb931

Please sign in to comment.