class Trikk: def __init__(self, rutenr, antallRader): self._rutenr = rutenr self._antallRader = antallRader self._plassPerRad = 5 self._minTrikk = self._lagTrikk(antallRader) def _lagTrikk(self, antallRader): plasser = [] for i in range(antallRader): plasser.append([]) for j in range(self._plassPerRad): plasser[i].append("ledig") return plasser #Dette ble glemt istad def __str__(self): tekst = "" for rad in self._minTrikk: tekst += "|" for plass in rad: tekst += str(plass) tekst += "|" tekst += "\n" return tekst def gaaPaaTrikk(self, passasjer): for i in range(len(self._minTrikk)): for j in range(self._plassPerRad): if self._minTrikk[i][j] == "ledig": self._minTrikk[i][j] = passasjer passasjer.gaaPaa() return True return False #finner alle naboene til et sete. def hentNaboer(self, rad, sete): naboListe = [] #iterer over alle naboene for i in range(-1, 2): for j in range(-1, 2): naboRad = rad + i naboSete = sete + j gyldig = True #Hvis indeksen er gyldig #hvis dette er tilfellet er vi i det objekte vi vil finne naboer for if i == 0 and j == 0: gyldig = False #naboRad er uten for indeksene sine if naboRad < 0 or naboRad >= len(self._minTrikk): gyldig = False #naboSete er utenfor indeksene sine if naboSete < 0 or naboSete >= self._plassPerRad: gyldig = False if gyldig and self._minTrikk[naboRad][naboSete] != "ledig": naboListe.append(self._minTrikk[naboRad][naboSete]) return naboListe def gaaAvTrikk(self, holdeplass): for i in range(len(self._minTrikk)): for j in range(self._plassPerRad): passasjer = self._minTrikk[i][j] if passasjer != "ledig": if passasjer.hentAvstigning() == holdeplass: passasjer.gaarAvRiktig() self._minTrikk[i][j] = "ledig" else: naboer = self.hentNaboer(i, j) stink_teller = 0 for nabo in naboer: if nabo.stinker(): stink_teller += 1 if stink_teller > 4: passasjer.gikkAvPgaStank() self._minTrikk[i][j] = "ledig" if self._minTrikk[i][j] != "ledig": self._minTrikk[i][j].ookAntallStasjoner() #Glemte å returnere trikken #Inkrementere antall stasjonerer for hver passasjer #Endret variabelnavn til paa antallSeterPerRad og plasser #La til str() på plass i linje 24 #Satt stinke-delen av gaaAvTrikk i en else for aa gjore det mer oversiktelig