/
sususer
/
ColonyGEN
Обзор
Документация
Войти
/
sususer
/
ColonyGEN
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
core/difficulty/pathfinding.py
67 строк
2 KB
Chekr
f11
03 июн 2026, 13:53
03 июн 2026, 13:53
d260831
Код
Авторство
О чём код?
from collections import deque class PathfindingAnalyzer: def __init__(self, game_state): self.state = game_state self.map = game_state.map def bottleneck_score(self): grid = self.map.grid h, w = self.map.height, self.map.width walkable = {"plain", "forest", "beach", "sand", "road", "base"} start = None for y in range(h): for x in range(w): if grid[y][x].type == "base": start = (y, x) break if start: break if not start: return 1.0 visited = set() q = deque([start]) reachable = 0 blocked = 0 while q: y, x = q.popleft() if (y, x) in visited: continue visited.add((y, x)) reachable += 1 for dy, dx in [(1,0),(-1,0),(0,1),(0,-1)]: ny, nx = y + dy, x + dx if not (0 <= ny < h and 0 <= nx < w): continue if grid[ny][nx].type not in walkable: blocked += 1 else: if (ny, nx) not in visited: q.append((ny, nx)) total_edges = reachable * 4 if total_edges == 0: return 1.0 return blocked / total_edges def network_strength(self): return 0.0 def reachable_resources_via_network(self): count = 0 for row in self.map.grid: for t in row: if t.resource > 0: count += 1 return count