From b6360d18ed54d2edecc5349fab080b42496a19b0 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Wed, 30 Nov 2022 11:20:48 +0100 Subject: [PATCH] grid.Grid(): getActiveRegion(); returns connected !default regions --- tools/grid.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tools/grid.py b/tools/grid.py index 825d7b7..049e549 100644 --- a/tools/grid.py +++ b/tools/grid.py @@ -183,6 +183,19 @@ class Grid: else: return list(self.__grid.keys()) + def getActiveRegion(self, start: Coordinate, includeDiagonal: bool = False, ignore: List[Coordinate] = None) \ + -> List[Coordinate]: + if not self.get(start): + return [] + if ignore is None: + ignore = [] + ignore.append(start) + for c in self.getNeighboursOf(start, includeDiagonal=includeDiagonal): + if c not in ignore: + ignore = self.getActiveRegion(c, includeDiagonal, ignore) + + return ignore + def values(self): return self.__grid.values()