blob: c38c680d340db93ac3b7a87162a06c67fe4a4aa8 (
about) (
plain)
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
|
from __future__ import absolute_import
import pickle
class Viewer(object):
def __init__(self, engine, sock):
self.sock = sock
self.engine = engine
def run(self):
for board in self.engine:
bots = {
letter: (None, colour, None, team)
for letter, (_, colour, _, team) in self.engine.bots.iteritems()
}
msg = pickle.dumps({
'bots': bots,
'board': board,
}, protocol=2)
self.sock.send(msg)
class Engine(object):
def __init__(self, sock):
self.sock = sock
def __iter__(self):
while True:
if not self.sock.poll(timeout=2000):
break
msg = self.sock.recv()
obj = pickle.loads(msg)
self.bots = obj['bots']
yield obj['board']
|