From 3c855e674986cf8bc8dfd7d2fd254d828abbffe6 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Mon, 13 Dec 2021 07:19:27 +0100 Subject: [PATCH] range methods better get() allow print() to be useful with false/true grids --- tools/grid.py | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/tools/grid.py b/tools/grid.py index 48439d0..bb5e9a1 100644 --- a/tools/grid.py +++ b/tools/grid.py @@ -34,13 +34,22 @@ class Grid: self.mode3D = False def __trackBoundaries(self, pos: Coordinate): - self.minX = min(self.minX, pos.x) - self.minY = min(self.minY, pos.y) - self.maxX = max(self.maxX, pos.x) - self.maxY = max(self.maxY, pos.y) + self.minX = min(pos.x, self.minX) + self.minY = min(pos.y, self.minY) + self.maxX = max(pos.x, self.maxX) + self.maxY = max(pos.y, self.maxY) if self.mode3D: - self.minZ = min(self.minZ, pos.z) - self.maxZ = max(self.maxZ, pos.z) + self.minZ = min(pos.z, self.minZ) + 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): if pos in self.__grid: @@ -74,10 +83,7 @@ class Grid: return self.set(pos, self.get(pos) / value) def get(self, pos: Coordinate) -> Any: - if pos in self.__grid: - return self.__grid[pos] - else: - return self.__default + return self.__grid.get(pos, self.__default) def getOnCount(self) -> int: return len(self.__grid) @@ -247,10 +253,13 @@ class Grid: 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 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()