Mercurial > sypikslang
annotate gamelib/visualize.py @ 130:8f717b2b3378
Advance milestone
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Thu, 10 May 2012 16:46:18 +0200 |
parents | 94258a86f773 |
children | 2587f8c34f84 |
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 | 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) |