def __init__(self, nodes: dict=None, groups: dict=None, leafs: list=None, players_list: list=None):
    '\n        GameTree class used to represent game tree:\n\n        Attributes\n        ----------\n        nodes : dict\n            dictionary of nodes;\n        groups : dict\n            dictionary of groups\n        leafs : list\n            list of leafs, calculated on demand\n        players_list: list\n            list of players names, indicating which game income from list is connected to which player\n        '
    '\n        dictionary of nodes:\n        Attributes\n        ----------\n        node : dict\n            dictionary representing node;\n\n            Attributes\n            ----------\n            value : float\n                value of node (the prize for reaching the node)\n            parents : dict\n                parents of node - can be multiple, represented by dict of ids and connection values\n            children : dict\n                children of node - can be multiple, represented by dict of ids and connection values\n            probability : float\n                probability of node - 1 means there is no random choice\n            branch : dict\n                totals of branch, to avoid tree walking\n\n                Attributes\n                ----------\n                value : float\n                    total value of branch\n                probability : float\n                    probability of reaching this node in game\n        '
    self._nodes = {}
    self._groups = ({} if (groups is None) else groups)
    self._leafs = ([] if (leafs is None) else leafs)
    self._players_list = ([] if (players_list is None) else players_list)
    (self.add_node({'id': 'root', 'player': '1'}) if (nodes is None) else nodes)
GameTree class used to represent game tree:

Attributes
----------
nodes : dict
    dictionary of nodes;
groups : dict
    dictionary of groups
leafs : list
    list of leafs, calculated on demand
players_list: list
    list of players names, indicating which game income from list is connected to which player
def __init__(self, nodes: dict=None, groups: dict=None, leafs: list=None, players_list: list=None):
    '\n        GameTree class used to represent game tree:\n\n        Attributes\n        ----------\n        nodes : dict\n            dictionary of nodes;\n        groups : dict\n            dictionary of groups\n        leafs : list\n            list of leafs, calculated on demand\n        players_list: list\n            list of players names, indicating which game income from list is connected to which player\n        '
    '\n        dictionary of nodes:\n        Attributes\n        ----------\n        node : dict\n            dictionary representing node;\n\n            Attributes\n            ----------\n            value : float\n                value of node (the prize for reaching the node)\n            parents : dict\n                parents of node - can be multiple, represented by dict of ids and connection values\n            children : dict\n                children of node - can be multiple, represented by dict of ids and connection values\n            probability : float\n                probability of node - 1 means there is no random choice\n            branch : dict\n                totals of branch, to avoid tree walking\n\n                Attributes\n                ----------\n                value : float\n                    total value of branch\n                probability : float\n                    probability of reaching this node in game\n        '
    self._nodes = {}
    self._groups = ({} if (groups is None) else groups)
    self._leafs = ([] if (leafs is None) else leafs)
    self._players_list = ([] if (players_list is None) else players_list)
    (self.add_node({'id': 'root', 'player': '1'}) if (nodes is None) else nodes)