from random import randint from hund import Hund class Kennel: def __init__(self, rad, kolonner): self._rad = rad self._kolonner = kolonner self._hundeListe = self._generer("hundenavn.txt", self._rad, self._kolonner) def _generer(self, filnavn, rader, kolonner): #En privat metode som genererer hundeliste maxAlder = 15 gutteListe = [] jenteListe = [] fil = open(filnavn) #begynner med å lese fra fil for linje in fil: biter = linje.split() jentenavn = biter[0] guttenavn = biter[1] gutteListe.append(guttenavn) jenteListe.append(jentenavn) #Legger guttenavn og jentenavn i hver sin liste hundeListe = [] #Lager en tom hundeliste for r in range(rader): hundeListe.append([]) #Lager en ny liste i listen for k in range(kolonner): kjonn = randint(0, 1) alder = randint(0, maxAlder) navnIndex = randint(0, len(gutteListe)-1) if kjonn == 1: navn = jenteListe[navnIndex] else: navn = gutteListe[navnIndex] hundeListe[r].append(Hund(kjonn, navn, alder)) #Lager en random hund og legger til i listen return hundeListe def hentHund(self, rad, kol): #En metode som retunerer hunden på en bestemt plass return self._hundeListe[rad][kol] def skrivHunder(self): #En metode som skirver ut alle hundene i kennelen for rad in range(len(self._hundeListe)): tekst = "Rad: " + str(rad) + " hunder: \n" for kol in range(len(self._hundeListe[rad])): tekst += self._hundeListe[rad][kol].hentHund() + ". \n" print(tekst) def finnNaboer(self, rad, kol): #Finner naboene til en bestemt hund naboListe = [] for r in range(-1, 2): #sjekker fra og med en bak til og med en forran for k in range(-1, 2): #Sjekker fra og med en over til og med en under naboRad = rad + r naboKolonne = kol + k gyldig = True #En hjelpevariabel if naboRad == rad and naboKolonne == kol: #Sjekker at vi ikke tar med hunden vi sjekker gyldig = False if naboRad >= self._rad or naboRad < 0: #sjekker at vi ikke er for langt til venste eller høyre gyldig = False if naboKolonne >= self._kolonner or naboKolonne < 0: #sjekker at vi ikke for langt opp eller end gyldig = False if gyldig: naboListe.append(self._hundeListe[naboRad][naboKolonne]) return naboListe #