1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/grid.py Thu May 27 17:14:56 2010 +0200
1.3 @@ -0,0 +1,37 @@
1.4 +grids = {}
1.5 +
1.6 +def createGrid(name):
1.7 + grids[name] = Grid(name)
1.8 +
1.9 +class Cell(object):
1.10 +
1.11 + def __init__(self, id, value):
1.12 + self.id = id
1.13 + self.value = value
1.14 +
1.15 + def __str__(self):
1.16 + return "(id:%s value:%s)" % (self.id, self.value)
1.17 +
1.18 +class Grid(object):
1.19 +
1.20 + def __init__(self, name):
1.21 + self.name = name
1.22 + self.cells = {}
1.23 + self.observers = []
1.24 +
1.25 + def set(self, cellId, value):
1.26 + if value and cellId not in self.cells:
1.27 + self.cells[cellId] = Cell(cellId, value)
1.28 + self.dispatch(Cell(cellId, 0), self.cells[cellId])
1.29 + elif not value and cellId in self.cells:
1.30 + self.dispatch(self.cells[cellId], Cell(cellId, 0))
1.31 + del self.cells[cellId]
1.32 +
1.33 + def dispatch(self, old, new):
1.34 + for o in self.observers:
1.35 + o[0].sendto("old: %s\nnew: %s\n" % (old, new), o[1])
1.36 +
1.37 + def addObserver(self, socket, observer):
1.38 + self.observers.append((socket, observer))
1.39 +
1.40 +