from bil import Bil from random import randint class Garasje: def __init__(self,antRad,antKol): self._rad = antRad self._kol = antKol self._biler = self.lagGarasje() def lagGarasje(self): garasjeListe = [] billiste = self.lagBilliste() for r in range(self._rad): etasje = [] for k in range(self._kol): tall = randint(0,3) #en bil har parkert hvis tall er 0 if tall == 0: #finner indexen til en vilk?rlig bil bilindex = randint(0,len(billiste)-1) #henter infoen om bilen bilinfo = billiste[bilindex] #legger til en ny bil merke,modell,regnr = bilinfo.split() etasje.append(Bil(merke,modell,regnr)) #legger til en ledig plass else: etasje.append(None) #legger til etasjen til garasjen garasjeListe.append(etasje) return garasjeListe def lagBilliste(self): billiste = [] file = open("billiste.txt") for line in file: billiste.append(line.strip("\n")) file.close() return billiste def printGarasje(self): for etasje in self._biler: for bil in etasje: print(bil,end=' ') print() #ser etter naboer som ikke er None def sjekkNaboer(self,rad,kol): mineNaboer = [] for r in range(-1,2): for k in range(-1,2): gyldig = True curR = rad+r curK = kol+k #sjekker at vi ikke er oss selv if curR == rad and curK == kol: gyldig = False #sjekker om curR er innenfor gyldig omr?de if curR>=self._rad or curR<0: gyldig = False #sjekker om curK er innenfor gyldig omr?de if curK >= self._kol or curK < 0: gyldig = False if gyldig: if self._biler[curR][curK] != None: mineNaboer.append(self._biler[curR][curK]) return mineNaboer def flyttBil(self,gammelR,gammelK,nyR,nyK): #flytter ikke bilen om plassen ikke er ledig if self._biler[nyR][nyK] != None: return False #flytter bilen og setter den gamle plassen til None self._biler[nyR][nyK] = self._biler[gammelR][gammelK] self._biler[gammelR][gammelK] = None return True def parkerBil(self,bil): for i in range(self._rad): for j in range(self._kol): if self._biler[i][j] == None: self._biler[i][j] = bil return True return False if __name__ == '__main__': g1 = Garasje(3,5) g1.printGarasje() rad = int(input("velg et tall mellom 0 og 2: ")) kol = int(input("velg et tall mellom 0 og 4: ")) if 0<=rad<3 and 0<=kol<5: naboer = g1.sjekkNaboer(rad,kol) print("nabobilene:") for n in naboer: print(n) print("end nabobiler") g1.printGarasje() #flytter p? en bil gr = int(input("velg et tall mellom 0 og 2: ")) gk = int(input("velg et tall mellom 0 og 4: ")) nr = int(input("velg et tall mellom 0 og 2: ")) nk = int(input("velg et tall mellom 0 og 4: ")) print(g1.flyttBil(gr,gk,nr,nk)) g1.printGarasje() g1.parkerBil(Bil("mercedes","glc","zy123")) g1.printGarasje()