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)