Skip to content

Instantly share code, notes, and snippets.

@imakin
Last active December 9, 2016 10:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save imakin/2d90ec3e578332b95cd260cc1908803b to your computer and use it in GitHub Desktop.
Save imakin/2d90ec3e578332b95cd260cc1908803b to your computer and use it in GitHub Desktop.
node0 = Node()
node1 = Node()
node2 = Node()
node3 = Node()
node4 = Node()
node5 = Node()
node6 = Node()
node7 = Node()
node8 = Node()
node9 = Node()
node10 = Node()
node11 = Node()
node12 = Node()
node_map = [
node0,
node1,
node2,
node3,
node4,
node5,
node6,
node7,
node8,
node9,
node10,
node11,
node12,
]
node0.childs = [node1,node2]
node1.childs = [node3,node4]
node2.childs = [node5,node6]
node5.childs = [node7,node8]
node8.childs = [node9,node10]
node6.childs = [node11,node12]
node4.explored = True
node7.explored = True
node10.explored = True
node11.explored = True
"""
0 1 3
4T
2 5 7T
8 9
10T
6 11T
12
So the taken route will be 3 routes:
0 1 3
0 2 5 8 9
0 2 6 12
"""
1.2
node0 = Node()
node1 = Node()
node2 = Node()
node3 = Node()
node4 = Node()
node5 = Node()
node6 = Node()
node7 = Node()
node8 = Node()
node9 = Node()
node10 = Node()
node11 = Node()
node_map = [
node0,
node1,
node2,
node3,
node4,
node5,
node6,
node7,
node8,
node9,
node10,
node11,
node12,
]
node0.childs =
"""
0 1 4 6
7
5 8
9
2 10 4
5
11 4
5
3 4
5
"""
printing
from tkinter import ttk
import tkinter
class PrintMap(object):
node_map = []
window = None
def __init__(self, node_map):
self.node_map = node_map
self.window = tkinter.Tk()
self.frame = ttk.Frame(self.window)
self.frame.grid(column=0,row=0,columnspan=10,rowspan=10)
def print_map(self):
""" print with stdout """
stack = [{"node":self.node_map[0], "pos":0}]
new_line = False
while len(stack)>0:
tail = stack.pop()
node = tail["node"]
pos = tail["pos"]
if new_line:
for x in range(pos):
print("\t", end="")
new_line = False
print(
self.node_map.index(node),
end="\t"
)
for child in reversed(node.childs):
stack.append({"node":child, "pos":pos+1})
if node.childs==[]:
new_line = True
print("")
def print_tk(self):
"""print with tk gui"""
stack = [{"node":self.node_map[0], "pos":0}]
new_line = False
current_row = 0
current_column = 0
self.collection = []
while len(stack)>0:
tail = stack.pop()
node = tail["node"]
pos = tail["pos"]
self.collection.append(node)
if new_line:
current_column = pos
new_line = False
current_column += 1
node_object = ttk.Button(self.frame, text="%d"%self.node_map.index(node))
node_object.grid(column=current_column, row=current_row)
for child in reversed(node.childs):
stack.append({"node":child, "pos":pos+1})
if node.childs==[]:
new_line = True
current_row += 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment