nodes.append(Square()) else: nodes.append(Triangle()) for edge in edges: adjacent_nodes = edge.split() first_node = nodes[int(adjacent_nodes[0])] second_node = nodes[int(adjacent_nodes[1])] first_node.add_adjacent_node(second_node) second_node.add_adjacent_node(first_node) node_domain = {} for node in nodes: domain = [1, 2, 3, 4, 5, 6, 7, 8, 9] node_domain[node] = domain algorithm = Algorithm(node_domain) print("Answer for backtracking with forward checking") result = algorithm.bt_fc_search({}, node_domain) if result is not None: for key in result.keys(): print(result[key], end=' ') print() else: print("there is no answer") print("Answer for backtracking with forward checking and MRV") result = algorithm.bt_fc_mrv({}, node_domain) for key in result.keys(): print(result[key], end=' ')