def connected_component_dia(self, point): marker = np.full(self.maxpoint, False, dtype=bool) pointstack = [point] color = self.get_color(point) assert is_black_white_empty(color) marker[point] = True while pointstack: p = pointstack.pop() neighbors = self.neighbors_of_color_dia(p, color) for nb in neighbors: if not marker[nb]: marker[nb] = True pointstack.append(nb) return marker
def _block_of(self, stone): """ Find the block of given stone Returns a board of boolean markers which are set for all the points in the block """ color = self.get_color(stone) assert is_black_white(color) #<--connected_component---> marker = np.full(self.maxpoint, False, dtype=bool) pointstack = [stone] assert is_black_white_empty(color) marker[stone] = True while pointstack: p = pointstack.pop() neighbors = self.neighbors_of_color(p, color) for nb in neighbors: if not marker[nb]: marker[nb] = True pointstack.append(nb) return marker