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.