diff -r ccbf96145796 -r 89d76549ba6e caugrid.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/caugrid.py Thu Dec 30 14:22:05 2010 +0100 @@ -0,0 +1,39 @@ +class Grid(object): + + def __init__(self): + self.cells = {} + self.minx = 0 + self.maxx = 0 + self.miny = 0 + self.maxy = 0 + + def set(self, pos, value=1): + if not pos in self.cells or value != self.cells[pos]: + self.cells[pos] = value + self.update(pos) + return self + + def clear(self, pos): + if pos in self.cells: + del self.cells[pos] + self.update(pos) + return self + + def update(self, (x, y)): + self.minx = min(x, self.minx) + self.maxx = max(x, self.maxx) + self.miny = min(y, self.miny) + self.maxy = max(y, self.maxy) + return self + + def width(self): + return self.maxx - self.minx + 1 + + def height(self): + return self.maxy - self.miny + 1 + + def __len__(self): + return len(self.cells) + + def __str__(self): + pass