Mercurial > sypikslang
comparison gamelib/visualize.py @ 111:bb76ce231ff9
Merge changes.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Wed, 09 May 2012 22:37:49 +0200 |
parents | 86a6434c4eb2 |
children | 94258a86f773 |
comparison
equal
deleted
inserted
replaced
110:ff7c953502d5 | 111:bb76ce231ff9 |
---|---|
1 import networkx | |
2 | |
3 from gamelib.lab import Lab | |
4 | |
5 | |
6 def construct_research_tree(lab): | |
7 rt = networkx.DiGraph() | |
8 for research in lab.new_research: | |
9 rt.add_node(research, label=research.NAME, color='green') | |
10 for research in lab.new_research: | |
11 for prereq in research.PREREQUISITES: | |
12 rt.add_edge(prereq[0], research, weight=1.0 / prereq[1], \ | |
13 label=prereq[1], color='green') | |
14 for schematic in lab.new_schematics: | |
15 rt.add_node(schematic, label=schematic.NAME, color='red') | |
16 for schematic in lab.new_schematics: | |
17 for prereq in schematic.PREREQUISITES: | |
18 rt.add_edge(prereq[0], schematic, weight=1.0 / prereq[1], \ | |
19 label=prereq[1], color='red', size=schematic.COST / 10) | |
20 return rt | |
21 | |
22 | |
23 def draw(rt): | |
24 agraph = networkx.to_agraph(rt) | |
25 agraph.graph_attr['label'] = 'Research Tree' | |
26 agraph.write('research_tree.dot') | |
27 | |
28 | |
29 def main(): | |
30 lab = Lab({'science': {}}) | |
31 research_tree = construct_research_tree(lab) | |
32 draw(research_tree) |