def oppdatering(self): ded2lev = [] # Tomme lister lev2ded = [] self.generasjon += 1 # Øker gen.# for i in range(len(self.rutenett)): for j in range(len(self.rutenett[i])): # Går inn på hvert objekt naboer = self.finnNabo(i,j) # Kaller på finnNabo som gir en liste teller = 0 # Setter teller lik 0 for cell in naboer: if cell.erLevende(): teller += 1 # Øker teller proporsjonalt med antall levende naboer if self.rutenett[i][j].erLevende(): if teller < 2 or teller > 3: # Dersom det er færre enn 2 eller flere enn 3 naboer lev2ded.append(self.rutenett[i][j]) # Legg til disse i lista der cellene skal dø else: if teller == 3: # Dersom en død celle har akkurat 3 celler ded2lev.append(self.rutenett[i][j]) # Gjenoppliv den cella # Oppdaterer hvilke celler som er døde og levenende for neste gen. for cell in ded2lev: Celle.settLevende(cell) for cell in lev2ded: Celle.settDoed(cell)
def generer(self): tall = randint(0, 2) celle = Celle() if tall == 0: celle.settLevende() else: celle.settDoed() return celle
def generer(self): #variabel som tar imot et tilfeldig tall fra 0 til 2 tall = randint(0, 2) #variabel som holder på Celle-objekt fra klassen Celle celle = Celle() #om variabelen over får 0, settes cellen som levende (altså 0=1/3, som er 30% sjanse) if tall == 0: celle.settLevende() #ellers dør cellen else: celle.settDoed() #celle-objektet returneres (med ny status) return celle
def _generer(self): #metoden genererer spillebrettet paa grunnlag av antall rader og kolonner #ruteNett = [[[celle],[celle]], [[celle], [celle]]] #ruteNett[rad][cellens posisjon = kolonne] #metoden genererer en rad (og kollone) ekstra - de printes ikke til terminalen #jeg gjorde det for aa slippe aa analysere hver mulig kombinasjon i finnNabo() metode for rad in range(0, self._rader + 1): #legger rad til ruteNett self._ruteNett.append([]) for antallRader in range(0, (self._rader + 1)): for cellInRad in range(0, (self._kolonner + 1)): #oppretter celle og legger til riktig rad-liste #sannsynlighet til at cellen er levende er 1/3 nyCelle = Celle() sjanse = randint(0, 2) if sjanse == 0: nyCelle.settLevende() else: nyCelle.settDoed() self._ruteNett[antallRader].append(nyCelle)