/
test.py
63 lines (45 loc) · 1.37 KB
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import logging
from argparse import ArgumentParser
from random import random
from pyglet import app
from pyglet.window import Window
from pyglet.clock import schedule_interval
from pyglet.gl import glClearColor
from render import SimView
from render import GraphView
from mutations import Map
from mutations import Body
from mutations import EnergyBank
parser = ArgumentParser(description='Start a Mutations simulation.')
parser.add_argument('--width', dest='map_width', default=500, type=int)
parser.add_argument('--height', dest='map_height', default=500, type=int)
parser.add_argument('--banks', dest='banks', default=5, type=int)
parser.add_argument('--bodies', dest='bodies', default=200, type=int)
values = parser.parse_args()
logging.basicConfig(level=logging.INFO)
def test_view():
global map_width
map_ = Map(values.map_width, values.map_height)
for i in range(values.banks):
map_.add(EnergyBank(map_, random()))
for i in range(values.bodies):
map_.add(Body(map_, random()))
def update(dt):
map_.tick()
sim = Window(map_.width, map_.height)
sim_view = SimView(map_)
schedule_interval(update, 0.1)
@sim.event
def on_draw():
glClearColor(.5, .6, .6, 1)
sim.clear()
sim_view.draw()
graph = Window(500, 100)
graph_view = GraphView(map_)
@graph.event
def on_draw():
graph.clear()
graph_view.draw()
app.run()
if __name__ == '__main__':
test_view()