Funkcja wywołuje samą siebie: trójkąt Sierpińskiego

Funkcje: parametry, wartości zwracane i zasięg zmiennych - Informatyka - liceum klasa 1, zakres rozszerzony (Python)

Funkcja może wywołać **samą siebie**. To **rekurencja**: duży problem rozwiązujesz tak samo jak mniejszy, aż dojdziesz do przypadku tak prostego, że robisz go od razu (to **warunek zakończenia**, bez niego wywołania nie skończyłyby się nigdy). **Trójkąt Sierpińskiego** stopnia 0 to zwykły trójkąt. Stopień `n` to trzy trójkąty stopnia `n - 1` o połowę mniejsze: w lewym dolnym rogu, w prawym dolnym i na górze. Zmień `level` na 0, 1, 2, 3 i 4 i porównaj rysunki. Ile trójkątów rysuje stopień 4?

arrow = Sprite()
arrow.image = 16
arrow.size = 10
arrow.pen.on = True
world.add(arrow)

def jump(x, y):
    arrow.pen.on = False
    arrow.position = (x, y)
    arrow.pen.on = True

def triangle(x, y, side):
    jump(x, y)
    arrow.angle = 90
    for _ in range(3):
        arrow.move(side)
        arrow.turn(-120)

def sierpinski(level, x, y, side):
    if level == 0:
        triangle(x, y, side)
        return
    half = side / 2
    height = half * 3 ** 0.5 / 2
    sierpinski(level - 1, x, y, half)
    sierpinski(level - 1, x + half, y, half)
    sierpinski(level - 1, x + half / 2, y + height, half)

level = 3
sierpinski(level, -90, -78, 180)

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Informatyka - liceum klasa 1, zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.