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

    liv2 = Celle()
    print(liv2.erLevende())

    print(liv1.hentStatusTegn())
    print(liv2.hentStatusTegn())
Exemple #5
0
 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)
Exemple #6
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
Exemple #7
0
 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
Exemple #8
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)