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,ruter): # Metode generer for i in range(len(ruter)): for j in range(len(ruter[i])): x = Celle() # Lager et objekt av klassen Celle if randint(0,2) == 1: # En viss sannsynlighet for at cellen er levende x.settLevende() ruter[i][j] = x # Objektet blir lagt til på sin plass else: ruter[i][j] = x
def main(): liv1 = Celle() liv1.settLevende() print(liv1.erLevende()) liv2 = Celle() print(liv2.erLevende()) print(liv1.hentStatusTegn()) print(liv2.hentStatusTegn())
def _generer(self): self.rutenett = [] for i in range(self._rader): self.rutenett.append([]) for i in self.rutenett: for k in range(self._kolonner): tmp = Celle() if random.randint(0, 3) == 0: tmp.settLevende() i.append(tmp)
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): rutenett = [] for j in range(self._rader): rutenett.append([]) for i in range(self._kolonner): #rutenett[j].append(Celle()) giStatus = randint(0, 2) nycelle = Celle() if giStatus == 0: #objekt = Celle().settLevende() #rutenett[j].append(Celle().settLevende()) nycelle.settLevende() rutenett[j].append(nycelle) return rutenett
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)