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