Создать динамическое дерево в Python, используя модуль anytree - PullRequest
1 голос
/ 03 ноября 2019

Я пытаюсь создать реализацию алгоритма minmax, и мне нужно создать дерево со всеми возможными ходами. Создайте дерево с помощью модуля anytree в python 3.7, но при попытке выполнить итерацию на первом уровне дерева и построить следующий уровень выдает ошибку.

Traceback (most recent call last):
Hello from the pygame community. https://www.pygame.org/contribute.html
  File "C:/Users/User/PycharmProjects/Tema5AI/Main.py", line 217, in <module>
min_max_algorithm(game)
  File "C:/Users/User/PycharmProjects/Tema5AI/Main.py", line 209, in min_max_algorithm
new_node = Node((game, i, 0), parent=(pre, fill, node))
  File "C:\Users\User\PycharmProjects\Tema5AI\venv\lib\site-packages\anytree\node\node.py", line 66, in __init__
    self.parent = parent
  File "C:\Users\User\PycharmProjects\Tema5AI\venv\lib\site-packages\anytree\node\nodemixin.py", line 126, in parent
    msg = "Parent node %r is not of type 'NodeMixin'." % (value)
TypeError: not all arguments converted during string formatting

Мой код для дерева сборки:

def min_max_algorithm(game):
    first_black_move = util.get_all_available_black(game)
    root = Node(game)
    for i in first_black_move:
        node = Node((game, i, 0), parent=root)
    for pre, fill, node in RenderTree(root):
        first_white_move = util.get_all_available_white(game)
        for i in first_white_move:
            new_node = Node((game, i, 0), parent=(pre, fill, node))
    for pre, fill, node in RenderTree(root):
        print("%s%s" % (pre, node.name))

Точнее, вопрос: как я могу добавить детей в узел, пройдя через текущее дерево?

Следующие вопросы не помогли мне: Как указать детей в anytree и распечататьдерево

Считывание данных из файла и создание дерева с использованием anytree в python

Как реализовать дерево в Python? Есть ли какие-либо встроенные структуры данных в Python, как в Java?

...