from sete import Sete class Kinosal: def __init__(self, kinoSal, antallRader, SeterPerRad): self._kinoSalnr = kinoSal self._seterPerRad = SeterPerRad self._antallRader = antallRader self._kinoSal = self._lagSal(antallRader) #Oppretter trikken med bare ledige seter def _lagSal(self, antallRader): sal = [] for i in range(antallRader): sal.append([]) #Legger til en rad for j in range(self._seterPerRad): sal[i].append(Sete()) return sal #Kjoper kino billett, hvis det er et ledig sete retunerer den true def kjopBillett(self): for i in range(self._antallRader): for j in range(self._seterPerRad): if self._kinoSal[i][j].hentStatus() == "ledig": self._kinoSal[i][j].settKjopt() naboListe = self.hentNaboer(i, j) for nabo in naboListe: nabo.settOpptatt() 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 >= self._antallRader: gyldig = False #naboSete er utenfor indeksene sine if naboSete < 0 or naboSete >= self._seterPerRad: gyldig = False if gyldig: naboListe.append(self._kinoSal[naboRad][naboSete]) return naboListe #lager en string representasjon av trikke objektet. def __str__(self): tekst = "" for rad in self._kinoSal: tekst += "|" for plass in rad: if str(plass) == "Kjøpt": tegn = " KJØPT " else: tegn = " ----- " tekst += tegn + "|" tekst += "\n" + "\n" return tekst