Last active
December 9, 2016 10:32
-
-
Save imakin/2d90ec3e578332b95cd260cc1908803b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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