Spirala Fibonacciego z kwadratów
Ciąg Fibonacciego metodą iteracyjną - Informatyka - liceum klasa 1 (Python)
Kwadraty o bokach z ciągu Fibonacciego (1, 1, 2, 3, 5, 8, 13) układają się bez luk w coraz większe prostokąty: każdy nowy kwadrat dokładamy do dłuższego boku prostokąta zbudowanego z poprzednich, na zmianę **w prawo, w górę, w lewo i w dół**. Program pamięta granice prostokąta (`left`, `bottom`, `right`, `top`). Nowy kwadrat staje przy odpowiedniej krawędzi, a potem ta krawędź przesuwa się o bok kwadratu. Funkcja `square(x, y, side)` rysuje kwadrat od lewego dolnego rogu. Skala `scale` zamienia wyraz ciągu na jednostki planszy.
arrow = Sprite()
arrow.image = 16
arrow.size = 10
world.add(arrow)
def square(x, y, side):
arrow.pen.on = False
arrow.position = (x, y)
arrow.angle = 0
arrow.pen.on = True
for _ in range(4):
arrow.move(side)
arrow.turn(90)
sizes = [1, 1]
while len(sizes) < 7:
sizes.append(sizes[-1] + sizes[-2])
scale = 6
left, bottom = -21, -33
right, top = left + scale, bottom + scale
square(left, bottom, scale)
direction = 0 # 0 w prawo, 1 w górę, 2 w lewo, 3 w dół
for f in sizes[1:]:
side = f * scale
if direction == 0:
square(right, bottom, side)
right += side
elif direction == 1:
square(left, top, side)
top += side
elif direction == 2:
square(left - side, bottom, side)
left -= side
else:
square(left, bottom - side, side)
bottom -= side
direction = (direction + 1) % 4Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Informatyka - liceum klasa 1·Zaloguj się, aby zapisać postęp na koncie.