1
- from anytree import Node , RenderTree
1
+ from anytree import Node , RenderTree , Walker
2
2
3
3
4
4
class Grid :
5
5
def __init__ (self , power ):
6
6
self .transformer_power = power
7
7
self .nodes = [GridNode ("[00]" , 0 , power , None )]
8
- self .root = self .nodes [0 ]. node
8
+ self .root = self .nodes [0 ]
9
9
self .num_nodes = 0
10
10
11
11
def add_node (self , length , power , parent_id ):
@@ -14,15 +14,21 @@ def add_node(self, length, power, parent_id):
14
14
name = "[" + str (self .num_nodes ) + "]"
15
15
else :
16
16
name = "[0" + str (self .num_nodes ) + "]"
17
- self .nodes .append (GridNode (name , length , power , self .nodes [parent_id ]. node ))
17
+ self .nodes .append (GridNode (name , length , power , self .nodes [parent_id ]))
18
18
19
19
20
- class GridNode :
20
+ class GridNode ( Node ) :
21
21
def __init__ (self , name , length , power , parent ):
22
- self . node = Node (name , parent = parent )
22
+ super (). __init__ (name , parent )
23
23
self .length = length
24
24
self .power = power
25
25
26
+ def total_length (self ):
27
+ if self .parent .name == "[00]" or self .name == "[00]" :
28
+ return self .length
29
+ else :
30
+ return self .length + self .parent .total_length ()
31
+
26
32
27
33
def get_kj (owners , is_city ):
28
34
"""
@@ -84,4 +90,13 @@ def evaluate_grid_current(owners, is_city):
84
90
if choice [0 ] == "exit" :
85
91
break
86
92
elif choice [0 ] == "add" :
87
- grid .add_node (choice [2 ], choice [3 ], int (choice [1 ]))
93
+ grid .add_node (int (choice [2 ]), int (choice [3 ]), int (choice [1 ]))
94
+
95
+ grid_len = 0
96
+ for node in grid .nodes :
97
+ if node .is_leaf :
98
+ print (node .total_length ())
99
+ if node .total_length () > grid_len :
100
+ grid_len = node .total_length ()
101
+
102
+ print (grid_len )
0 commit comments