Nasljeđivanje klasa - utrka auta objektno programiranje
26.5.2022.
Opći oblik definicije klase koja nasljeđuje neku klasu je:
class ImeKlase(ime_klase_koja_se_nasljeduje):
definicija klase
Unutar konstruktora nove klase (unutar metode __init__()) trebamo pozvati metodu __init__() klase koju nasljeđujemo. Ovu ćemo metodu u tom slučaju pozvati na način da ispred imena metode napišemo super() (super().__init__()).
06_utrka_kornjaca_nasljedjivanje_klasa_auti.py
from turtle import *
from random import randint
class Korni(Turtle):
def __init__(self, slika, y=0):
""" Boja, oblik i pozicija """
super().__init__() #poziv roditeljske klase
self.shape(slika) #zadaje oblik iz popisa oblika (crteža)
self.pu()
self.goto(-400, y)
def pomak(self):
self.fd(randint(1,30))
s = Screen()
def glavni():
s.title('Utrka automobila')
s.setup(1200, 650, 0, 0) #postavlja veličinu i poziciju prozora
s.bgcolor('green') #zadaje boju pozadine
s.bgpic('06_pozadina_utrka.gif')#zadaje sliku pozadine, gif
sl1 = '06_crveni_auto.gif'
s.addshape(sl1)
sl2 = '06_crni_auto.gif'
s.addshape(sl2) #dodaje oblik u popis oblika koji (u tom prozoru)
sl3 = '06_plavi_auto.gif'
s.addshape(sl3)
sl4 = '06_zeleni_auto.gif'
s.addshape(sl4)
laura = Korni(sl1, 50)
roko = Korni(sl2, -30)
viktor = Korni(sl3, -110)
hrvoje = Korni(sl4, -190)
for k in range(50):
laura.pomak()
roko.pomak()
viktor.pomak()
hrvoje.pomak()
glavni()