MCPcopy Create free account
hub / github.com/Astropulse/hexmap / _connected_components_hex

Function _connected_components_hex

map.py:966–987  ·  view source on GitHub ↗
(mask: np.ndarray)

Source from the content-addressed store, hash-verified

964
965
966def _connected_components_hex(mask: np.ndarray) -> list[list[tuple[int, int]]]:
967 rows, cols = mask.shape
968 vis = np.zeros_like(mask, dtype=np.uint8)
969 comps: list[list[tuple[int, int]]] = []
970
971 for r in range(rows):
972 for c in range(cols):
973 if not mask[r, c] or vis[r, c]:
974 continue
975 q = deque([(r, c)])
976 vis[r, c] = 1
977 comp: list[tuple[int, int]] = []
978 while q:
979 rr, cc = q.popleft()
980 comp.append((rr, cc))
981 for r2, c2 in hex_neighbors(rr, cc, rows, cols):
982 if mask[r2, c2] and not vis[r2, c2]:
983 vis[r2, c2] = 1
984 q.append((r2, c2))
985 comps.append(comp)
986
987 return comps
988
989
990def _pick_single_desert_seven(cfg: Config, tilemap: np.ndarray) -> tuple[int, int] | None:

Callers 1

Calls 1

hex_neighborsFunction · 0.85

Tested by

no test coverage detected