from hund import Hund from kennel import Kennel def hovedprogram(): ny = Hund(0, "Fida", 5) #Vi tester str print(ny) #Vi tester hentHund print(ny.hentHund()) ny2 = Hund(0, "Kajsa", 2) # tester __eq__ print("Sjekker likhet: ", ny == ny2) #True print("Sjekker samme objekt: ", ny is ny2) #False oslohundekennel = Kennel(4, 10) oslohundekennel.skrivHunder() naboer = oslohundekennel.finnNaboer(2, 1) print("Naboer til", oslohundekennel.hentHund(2,1), ":") for n in naboer: print(n) hovedprogram() ----HUNDEKLASSEN--- class Hund: def __init__(self, kjonn, navn, alder): self._kjonn = kjonn #0 er jente, 1 er gutt self._navn = navn self._alder = alder def __str__(self): #trenger bare vite navnet om vi kaller på hunden return self._navn def hentHund(self): if self._kjonn == 1: return "Navn: " + self._navn + ", er " + str(self._alder) + " aar gammel og kjonnet er: jente. " else: return "Navn: " + self._navn + ", er " + str(self._alder) + " aar gammel og kjonnet er: gutt." def hentKjonn(self): #Vi lager denne fordi det er dette vi vil sammenligne, regne som likt return self._kjonn def __eq__(self, annenHund): #annenHund MÅ være et objekt av klassen Hund return self._kjonn == annenHund.hentKjonn() ----KENNELKLASSEN---- from random import randint from hund import Hund class Kennel: def __init__(self, rad, kolonne): self._rader = rad #antall rader - hundebur horisontalt self._kolonner = kolonne #antall kolonner - hundebur vertikalt self._hundeliste = self.generer(rad, kolonne)#skal kalle på generer()-metoden og dermed få en liste med hundeobjekter def generer(self, rader, kolonner): #skal brukes for å opprette hunde-objekter med faktiske navne navneliste = ["Abe","Ace", "Achillies","Agar", "Aiden", "Ajax", "Allegro", "Allie","Amazon", "Amigo","Anaconda", "Andres","Android", "Angstrom", "Anise", "Aquarius", "Archie", "Argus","Artemis", "Ashes", "Aspen", "Atlas", "August", "Avalon", "Armani"] #skal brukes for å gi hunde-objektene en maksalder maxAlder = 15 hundeliste = [] #SÅ oppretter vi hunder: for j in range(rader): hundeliste.append([]) #Vi skal ha en tom liste fordi vi skal ha todimensjonelt liste, med rader og _kolonner for i in range(kolonner): #i representerer den kolonnen vi er i #generer "kjonn" - randint gir tilfeldig 0 eller 1 tall = randint(0,1) #generer indeks til å hente elementer i listen navneliste - randint gir et tilfeldig tall mellom 0 og antall indeks i navneliste navn_indeks = randint(0, len(navneliste)-1) #generer alder - randint gir et tilfeldig tall mellom 0 og 15 alder = randint(0, 15) #oppretter hunde-objekter og legger de i radene. hundeliste[j].append(Hund(tall, navneliste[navn_indeks], alder)) #j representerer en rader vi er i return hundeliste def finnNaboer(self, rad, kol): #Vi skal sjekke naboer for et objekt som ligger på rad og kol naboliste = [] #TEGN OPP LISTENE for j in range(-1, 2): # i representerer for i in range(-1, 2): naboRad = rad + i naboKol = kol + j gyldig = True #sjekker at det vi holder på å legge i listen ikke er det samme det vi sjekker for if naboRad == rad and naboKol == kol: gyldig = False if naboRad >= self._rader or naboRad < 0: gyldig = False if naboKol >= self._kolonner or naboKol < 0: gyldig = False if gyldig: naboliste.append(self._hundeliste[naboRad][naboKol]) return naboliste def hentHund(self, rad, kol): return self._hundeliste[rad][kol] def skrivHunder(self): for j in range(len(self._hundeliste)): tekst = "----Rad: " + str(j) + " hunder: " for i in range(len(self._hundeliste[j])): tekst += self._hundeliste[j][i].hentHund() print(tekst + "----")