1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/caugrid.py Thu Dec 30 14:22:05 2010 +0100
1.3 @@ -0,0 +1,39 @@
1.4 +class Grid(object):
1.5 +
1.6 + def __init__(self):
1.7 + self.cells = {}
1.8 + self.minx = 0
1.9 + self.maxx = 0
1.10 + self.miny = 0
1.11 + self.maxy = 0
1.12 +
1.13 + def set(self, pos, value=1):
1.14 + if not pos in self.cells or value != self.cells[pos]:
1.15 + self.cells[pos] = value
1.16 + self.update(pos)
1.17 + return self
1.18 +
1.19 + def clear(self, pos):
1.20 + if pos in self.cells:
1.21 + del self.cells[pos]
1.22 + self.update(pos)
1.23 + return self
1.24 +
1.25 + def update(self, (x, y)):
1.26 + self.minx = min(x, self.minx)
1.27 + self.maxx = max(x, self.maxx)
1.28 + self.miny = min(y, self.miny)
1.29 + self.maxy = max(y, self.maxy)
1.30 + return self
1.31 +
1.32 + def width(self):
1.33 + return self.maxx - self.minx + 1
1.34 +
1.35 + def height(self):
1.36 + return self.maxy - self.miny + 1
1.37 +
1.38 + def __len__(self):
1.39 + return len(self.cells)
1.40 +
1.41 + def __str__(self):
1.42 + pass