range methods
better get() allow print() to be useful with false/true grids
This commit is contained in:
parent
d5a278ceef
commit
3c855e6749
@ -34,13 +34,22 @@ class Grid:
|
|||||||
self.mode3D = False
|
self.mode3D = False
|
||||||
|
|
||||||
def __trackBoundaries(self, pos: Coordinate):
|
def __trackBoundaries(self, pos: Coordinate):
|
||||||
self.minX = min(self.minX, pos.x)
|
self.minX = min(pos.x, self.minX)
|
||||||
self.minY = min(self.minY, pos.y)
|
self.minY = min(pos.y, self.minY)
|
||||||
self.maxX = max(self.maxX, pos.x)
|
self.maxX = max(pos.x, self.maxX)
|
||||||
self.maxY = max(self.maxY, pos.y)
|
self.maxY = max(pos.y, self.maxY)
|
||||||
if self.mode3D:
|
if self.mode3D:
|
||||||
self.minZ = min(self.minZ, pos.z)
|
self.minZ = min(pos.z, self.minZ)
|
||||||
self.maxZ = max(self.maxZ, pos.z)
|
self.maxZ = max(pos.z, self.maxZ)
|
||||||
|
|
||||||
|
def rangeX(self):
|
||||||
|
return range(self.minX, self.maxX + 1)
|
||||||
|
|
||||||
|
def rangeY(self):
|
||||||
|
return range(self.minY, self.maxY + 1)
|
||||||
|
|
||||||
|
def rangeZ(self):
|
||||||
|
return range(self.minZ, self.maxZ + 1)
|
||||||
|
|
||||||
def toggle(self, pos: Coordinate):
|
def toggle(self, pos: Coordinate):
|
||||||
if pos in self.__grid:
|
if pos in self.__grid:
|
||||||
@ -74,10 +83,7 @@ class Grid:
|
|||||||
return self.set(pos, self.get(pos) / value)
|
return self.set(pos, self.get(pos) / value)
|
||||||
|
|
||||||
def get(self, pos: Coordinate) -> Any:
|
def get(self, pos: Coordinate) -> Any:
|
||||||
if pos in self.__grid:
|
return self.__grid.get(pos, self.__default)
|
||||||
return self.__grid[pos]
|
|
||||||
else:
|
|
||||||
return self.__default
|
|
||||||
|
|
||||||
def getOnCount(self) -> int:
|
def getOnCount(self) -> int:
|
||||||
return len(self.__grid)
|
return len(self.__grid)
|
||||||
@ -247,10 +253,13 @@ class Grid:
|
|||||||
|
|
||||||
return pathCoords
|
return pathCoords
|
||||||
|
|
||||||
def print(self, spacer: str = ""):
|
def print(self, spacer: str = "", true_char: str = None):
|
||||||
for y in range(self.minY, self.maxY + 1):
|
for y in range(self.minY, self.maxY + 1):
|
||||||
for x in range(self.minX, self.maxX + 1):
|
for x in range(self.minX, self.maxX + 1):
|
||||||
print(self.get(Coordinate(x, y)), end="")
|
if true_char:
|
||||||
|
print(true_char if self.get(Coordinate(x, y)) else " ", end="")
|
||||||
|
else:
|
||||||
|
print(self.get(Coordinate(x, y)), end="")
|
||||||
print(spacer, end="")
|
print(spacer, end="")
|
||||||
|
|
||||||
print()
|
print()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user