Želvi dodaj lastnost (atribut) length, ki bo vsebovala dolžino črte, ki jo je doslej narisala želva.

t = Turtle()
print(t.length)  # izpiše 0
t.forward(15)
print(t.length)  # izpiše 15
t.turn(50)
print(t.length)  # izpiše 15, saj želva med obračanjem ne riše
t.backward(5)
print(t.length)  # izpiše 20 (ne 10! želva, ki gre nazaj riše, ne briše! ;)

t.fly(100, 100, 0)
print(t.length)  # izpiše 20, saj želva med letenjem ne riše

t.pen_up()
t.forward(5)
print(t.length)  # izpiše 20, saj želva z dvignjenim peresom ne riše

Dopolnjuj razred Turtle, ki je priložen testom.

Rešitev

V __init__ je potrebno dodati vrstico

self.length = 0

S tem želvi dodamo atribut length.

V forward pa znotraj if-a -- se pravi le, ko je pero spuščeno -- dodamo

self.length += abs(a)

abs je potreben, da bomo dolžino povečevali tudi, ko gre želva nazaj.

Metode backward ni potrebno spreminjati, ker backward tako ali tako pokliče forward -- trik, ki smo ga uporabljali tudi na predavanjih.

Zadnja sprememba: četrtek, 9 maj 2019, 14:01