Naloge: lastnosti (property) objektov
Želvi dodaj lastnost (property)
distance
, ki vrne trenutno razdaljo od njene začetne pozicije. Lastnost je možno le brati, ne pa tudi spreminjati.Spremeni želvine atribute
x
,y
inangle
v_x
,_y
in_angle
. Nato želvi dodaj lastnostix
,y
inangle
, ki jih bo mogoče brati in jih spreminjati. Shranjujejo se v_x
,_y
in_angle
, obenem pa moraš poskrbeti, da se bo želva ob nastavljanju koordinat ali koda dejansko prestavila ali obrnila.
(nekoliko težja) Želvi dodaj atribut
log
, ki bo seznam vseh ukazov, ki jih je izvršila želva. Ukazi bodo shranjeni v obliki parov z imenom ukaza in terko z argumenti, na primer[("fly", (100, 150, 0)), ("forward", (30, )), ("turn", (90))]
. Napiši dekorator@logging
in z njim dekoriraj metodeforward
,turn
infly
tako, da bo vlog
shranjevali izvedene ukaze. (Ukazovbackward
,left
inright
ne logiramo, ker se tako ali tako prevedejo na one tri.)(težja) Namesto imen metod logiraj metode, npr.
self.forward
. Želvi dodaj metodiclear_log
, ki pobrišelog
inrepeat
, ki izvede vse, kar je napisano vlog
.