author | Eugen Sawin <sawine@me73.com> |
Thu, 30 Dec 2010 14:36:25 +0100 | |
changeset 4 | 20edf3e369a2 |
child 5 | dd036093fc09 |
permissions | -rw-r--r-- |
1 class Grid(object):
3 def __init__(self):
4 self.cells = {}
5 self.minx = 0
6 self.maxx = 0
7 self.miny = 0
8 self.maxy = 0
10 def set(self, pos, value=1):
11 if not pos in self.cells or value != self.cells[pos]:
12 self.cells[pos] = value
13 self.update(pos)
14 return self
16 def clear(self, pos):
17 if pos in self.cells:
18 del self.cells[pos]
19 self.update(pos)
20 return self
22 def update(self, (x, y)):
23 self.minx = min(x, self.minx)
24 self.maxx = max(x, self.maxx)
25 self.miny = min(y, self.miny)
26 self.maxy = max(y, self.maxy)
27 return self
29 def width(self):
30 return self.maxx - self.minx + 1
32 def height(self):
33 return self.maxy - self.miny + 1
35 def __len__(self):
36 return len(self.cells)
38 def __str__(self):
39 pass