annotate gamelib/visualize.py @ 143:821ecb98e888

some icons and toggle button
author Rizmari Versfeld <rizziepit@gmail.com>
date Fri, 11 May 2012 03:13:22 +0200
parents 94258a86f773
children 2587f8c34f84
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
100
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
1 import networkx
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
2
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
3 from gamelib.lab import Lab
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
4
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
5
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
6 def construct_research_tree(lab):
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
7 rt = networkx.DiGraph()
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
8 for research in lab.new_research:
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
9 rt.add_node(research, label=research.NAME, color='green')
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
10 for research in lab.new_research:
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
11 for prereq in research.PREREQUISITES:
117
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
12 prefix = prereq[0].NAME[0:3]
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
13 cur = prereq[0]
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
14 for i in range(1, prereq[1] + 1):
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
15 rt.add_node(prefix + str(i), color='green')
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
16 rt.add_edge(cur, prefix + str(i), color='green')
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
17 cur = prefix + str(i)
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
18 rt.add_edge(cur, research, color='green')
100
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
19 for schematic in lab.new_schematics:
117
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
20 rt.add_node(schematic, label=schematic.NAME, color='pink')
100
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
21 for schematic in lab.new_schematics:
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
22 for prereq in schematic.PREREQUISITES:
117
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
23 prefix = prereq[0].NAME[0:3]
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
24 cur = prereq[0]
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
25 for i in range(1, prereq[1] + 1):
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
26 rt.add_node(prefix + str(i), color='pink')
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
27 rt.add_edge(cur, prefix + str(i), color='pink')
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
28 cur = prefix + str(i)
94258a86f773 upgrade research tree visualization
Rizmari Versfeld <rizziepit@gmail.com>
parents: 105
diff changeset
29 rt.add_edge(cur, schematic, color='pink')
100
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
30 return rt
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
31
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
32
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
33 def draw(rt):
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
34 agraph = networkx.to_agraph(rt)
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
35 agraph.graph_attr['label'] = 'Research Tree'
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
36 agraph.write('research_tree.dot')
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
37
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
38
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
39 def main():
104
Rizmari Versfeld <rizziepit@gmail.com>
parents: 102
diff changeset
40 lab = Lab({'science': {}})
100
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
41 research_tree = construct_research_tree(lab)
b27b4dede626 added visualization for research tree
Rizmari Versfeld <rizziepit@gmail.com>
parents:
diff changeset
42 draw(research_tree)