Beispiel #1
0
    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)
Beispiel #2
0
 def generer(self):
     tall = randint(0, 2)
     celle = Celle()
     if tall == 0:
         celle.settLevende()
     else:
         celle.settDoed()
     return celle
Beispiel #3
0
 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
Beispiel #4
0
    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)