Plansza to graf
Grafy w zadaniach: labirynt i plansza - Informatyka - liceum klasa 3, zakres rozszerzony (Python)
Na planszy **pola** są wierzchołkami, a **ruchy** krawędziami. Grafu nie trzeba budować: sąsiadów pola `(r, c)` liczymy w locie (góra, dół, lewo, prawo), pomijając pola poza planszą i ściany `#`. Program wypisuje sąsiadów kilku pól labiryntu.
maze = [
"S.#.....",
".##.###.",
"....#...",
"#.#...#E",
]
rows, cols = len(maze), len(maze[0])
def neighbours(r, c):
result = []
for dr, dc in ((-1, 0), (1, 0), (0, -1), (0, 1)):
a, b = r + dr, c + dc
if 0 <= a < rows and 0 <= b < cols and maze[a][b] != "#":
result.append((a, b))
return result
for cell in [(0, 0), (2, 3), (3, 7)]:
print(cell, "->", neighbours(*cell))Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Informatyka - liceum klasa 3, zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.