'board': game.board, 'name': node_id[-3:] } while True: if (game.turn % 2) == 0: # Player's turn move = getReady(game) game = makeMove(move, game) node = util.updateNode(node, game) else: # Computer's turn # Depth == 3, with Dijkstra Eval best_value = util.alphaBetaSearch(node, 3, -99, 99, isMaximizer=True) move = util.getBestMove(node, best_value) game = makeMove(move, game) node = util.updateNode(node, game) if game.isGameOver(): if game.checkWin(game.BLUE): print("!!! Blue Player Won !!!") elif game.checkWin(game.RED): print("!!! Red Player Won !!!") else: print("!!! DRAW nobody could win !!!") ans = str( input(
'id': node_id, 'type': 'MIN', 'children': [], 'searched': False, 'value': None, 'parent_type': 'MAX', 'board': game.board, 'name': node_id[-3:] } while True: game.print() if (game.turn % 2) == 0: # Computer 1's turn best_value = util.alphaBetaSearch(node, 4, -9999999, 9999999, isMaximizer=False) move = getReady(game) game = makeMove(move, game) node = util.updateNode(node, game) else: # Computer 2's turn boardState = node['board'].copy() try: move = FirstTable[boardState.tobytes()] except KeyError: best_value = util.iterativeDeepening(node, True) move = util.getBestMove(node, best_value) FirstTable[boardState.tobytes()] = move game = makeMove(move, game)