Advertisement
Guest User

Untitled

a guest
May 25th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. def minimax(board , depth , isComp , player):
  2.  
  3. if not isComp :
  4. if depth == 9:
  5. if check_if_won(player + 1, board):
  6. return -1
  7. return 0
  8. bestval = +999999
  9. for i in range(0, 3):
  10. for j in range(0, 3):
  11. if board[i][j] == 0:
  12. new_board = copy.deepcopy(board)
  13. new_board[i][j] = player + 1
  14. if check_if_won(player + 1, new_board):
  15. return -1
  16. temp = minimax(new_board, depth +1, True , 1 - player)
  17. if temp < bestval:
  18. bestval = temp
  19. else:
  20. if depth == 9:
  21. if check_if_won(player + 1, board):
  22. return 1
  23. return 0
  24. bestval = -999999
  25. for i in range(0, 3):
  26. for j in range(0, 3):
  27. if board[i][j] == 0:
  28. new_board = copy.deepcopy(board)
  29. new_board[i][j] = player + 1
  30. if check_if_won(player + 1, new_board):
  31. return 1
  32. temp = minimax(new_board, depth +1, False , 1 - player)
  33. if temp > bestval:
  34. bestval = temp
  35.  
  36.  
  37. return bestval
  38.  
  39. def AI_makemove(board_state , depth , player):
  40. start = time.time()
  41. bestval = -9999
  42. a = 0
  43. b = 0
  44. for i in range(0, 3):
  45. for j in range(0, 3):
  46. if board_state[i][j] == 0:
  47. new_board = copy.deepcopy(board_state)
  48. new_board[i][j] = player + 1
  49. if check_if_won(player + 1, new_board):
  50. bestval = 1
  51. a = i
  52. b = j
  53. temp = minimax(new_board , depth+1, False, 1 - player)
  54. if temp > bestval:
  55. bestval = temp
  56. a = i
  57. b = j
  58.  
  59. end = time.time()
  60. print("Time taken for this move : ",(end-start)," seconds")
  61. return [bestval , a ,b]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement