Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. import copy
  2.  
  3. global num_branches
  4. num_branches = 0
  5.  
  6. def minimax(env, alpha, beta):
  7. global num_branches
  8. num_branches += 1
  9.  
  10. if env.was_winning_move():
  11. if env.player_at_turn == 'x':
  12. return 1
  13. else:
  14. return -1
  15. if env.grid_is_full():
  16. return 0
  17.  
  18. env.change_turn()
  19.  
  20. if env.player_at_turn == 'x':
  21. value = -2
  22. for x in env.available_actions:
  23. new_env = copy.deepcopy(env)
  24. new_env.act(action = x)
  25. value = max(value, minimax(new_env, alpha, beta))
  26. alpha = max(alpha, value)
  27. if beta <= alpha:
  28. break
  29. return value
  30. else:
  31. value = 2
  32. for x in env.available_actions:
  33. new_env = copy.deepcopy(env)
  34. new_env.act(action = x)
  35. value = min(value, minimax(new_env, alpha, beta))
  36. beta = min(beta, value)
  37. if beta <= alpha:
  38. break
  39. return value
  40.  
  41. start = time.time()
  42. state_value = minimax(env, -2, 2)
  43. print(time.time()-start)
  44.  
  45. print("state_value ", state_value)
  46. print("num_branches ", num_branches)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement