from iskrem import Iskrem from random import choice class Isbar: def __init__(self, rad, kol): self._rader = rad self._kolonner = kol self._utvalg = [] self._settStruktur() self.generer() # Organiserer isboksene i en todimensjonal nøstet liste. def _settStruktur(self): for i in range(self._rader): rad = [] for j in range(self._kolonner): rad.append(Iskrem()) self._utvalg.append(rad) # Setter alle boksene i isbaren til å inneholde tilfeldige smaker def generer(self): smaker = ["Vanilje", "Sitron", "Jordbær", "Bringebær", "Sjokolade", "Pistasj", "Bananasplit", "Cookie dough", "Oreo", "Karamell", "Pære", "Krokan", "Coffee", "Rom & rosin"] for rad in self._utvalg: for iskrem in rad: smak = choice(smaker) iskrem.settType(smak) # Skriver ut isbaren formatert til terminal def visBar(self): for rad in self._utvalg: streng = "|" for iskrem in rad: streng += "{:12}|".format(str(iskrem)) print(streng) # Finner alle naboboksene til iskremen på en gitt rad og kolonne def finnNabo(self, rad, kol): naboer = [] for i in range(-1, 2): for j in range(-1, 2): naboRad = rad + i naboKol = kol + j gyldig = True # Er dette samme iskremen vi skal finne naboene til? if naboRad == rad and naboKol == kol: gyldig = False # Er indeksen for liten? elif naboRad < 0 or naboKol < 0: gyldig = False # Er indeksen for stor? elif naboRad >= self._rader or naboKol >= self._kolonner: gyldig = False # Hvis ingen av delene, kan vi trygt legge iskremen til i # listen vår av naboer. if gyldig: naboer.append(self._utvalg[naboRad][naboKol]) return naboer