from passasjer import Passasjer class Trikk: def __init__(self, rutenr, antallRader): self._rutern = rutenr self._antallRader = antallRader self._plassPerRad = 5 self._plasser = self._lagTrikk() self._navn = navn #Oppretter trikken med bare ledige seter def _lagTrikk(self): plasser = [] for i in range(self._antallRader): rad = [] for j in range(self._plassPerRad): rad.append("ledig") plasser.append(rad) return plasser """gaar gjennom trikken hvis det er ledig plass setter passasjeren seg hv ikke får den ikke gått på. """ def gaaPaaTrikk(self, passasjer): for i in range(self._antallRader): for j in range(self._plassPerRad): if self._plasser[i][j] == "ledig": self._plasser[i][j] = passasjer passasjer.gaaPaa() return True return False #finner alle naboene til et sete. def hentNaboer(self, rad, sete): naboListe = [] for i in range(-1, 2): for j in range(-1, 2): naboRad = rad + i naboSete = sete + j gyldig = True if i == 0 and j == 0: gyldig = False if naboRad < 0 or naboRad >= self._antallRader: gyldig = False if naboSete < 0 or naboSete >= self._plassPerRad: gyldig = False if gyldig and self._plasser[naboRad][naboSete] != "ledig": naboListe.append(self._plasser[naboRad][naboSete]) return naboListe #Går gjennom setene hvis personen skal av gaar den av. #Hvis mer en 4 personer rundt stinker gaar person av pga vond lukt def gaaAvTrikk(self, stasjon): for i in range(self._antallRader): for j in range(self._plassPerRad): passasjer = self._plasser[i][j] if passasjer != "ledig": if passasjer.hentAvstigning() == stasjon: passasjer.gaarAvRiktig() self._plasser[i][j] = "ledig" else: stinker = 0 naboListe = self.hentNaboer(i, j) for nabo in naboListe: if nabo.stinker(): stinker += 1 print(stinker, "|", len(naboListe)) if stinker > 4: self._plasser[i][j] = "ledig" if self._plasser[i][j] != "ledig": self._plasser[i][j].ookAntallStasjoner() #lager en string representasjon av trikke objektet. def __str__(self): tekst = "" for rad in self._plasser: tekst += "|" for passasjer in rad: tekst += str(passasjer) + "|" tekst += "\n" return tekst