Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def minimax(board , depth , isComp , player):
- if not isComp :
- if depth == 9:
- if check_if_won(player + 1, board):
- return -1
- return 0
- bestval = +999999
- for i in range(0, 3):
- for j in range(0, 3):
- if board[i][j] == 0:
- new_board = copy.deepcopy(board)
- new_board[i][j] = player + 1
- if check_if_won(player + 1, new_board):
- return -1
- temp = minimax(new_board, depth +1, True , 1 - player)
- if temp < bestval:
- bestval = temp
- else:
- if depth == 9:
- if check_if_won(player + 1, board):
- return 1
- return 0
- bestval = -999999
- for i in range(0, 3):
- for j in range(0, 3):
- if board[i][j] == 0:
- new_board = copy.deepcopy(board)
- new_board[i][j] = player + 1
- if check_if_won(player + 1, new_board):
- return 1
- temp = minimax(new_board, depth +1, False , 1 - player)
- if temp > bestval:
- bestval = temp
- return bestval
- def AI_makemove(board_state , depth , player):
- start = time.time()
- bestval = -9999
- a = 0
- b = 0
- for i in range(0, 3):
- for j in range(0, 3):
- if board_state[i][j] == 0:
- new_board = copy.deepcopy(board_state)
- new_board[i][j] = player + 1
- if check_if_won(player + 1, new_board):
- bestval = 1
- a = i
- b = j
- temp = minimax(new_board , depth+1, False, 1 - player)
- if temp > bestval:
- bestval = temp
- a = i
- b = j
- end = time.time()
- print("Time taken for this move : ",(end-start)," seconds")
- return [bestval , a ,b]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement