RANDOMIZE TIMER m = 30 sz = 30 meret = 10 sugar = 4 szin(3) = 9 szin(1) = 12 SCREEN 12 DIM cella(sz, m) DIM ujcella(sz, m) viz(1) = 1: fugg(1) = 1 viz(2) = 0: fugg(2) = 1 viz(3) = -1: fugg(3) = 1 viz(4) = -1: fugg(4) = 0 viz(5) = 1: fugg(5) = 0 viz(6) = 1: fugg(6) = -1 viz(7) = 0: fugg(7) = -1 viz(8) = -1: fugg(8) = -1 kezdi: ' ************ kezdeti sejtelrendezodes **************** FOR i = 1 TO sz FOR j = 1 TO m u = RND - .5 ujcella(i, j) = SGN(u) * SGN(INT(ABS(u) * 3)) NEXT j NEXT i ' a szorzo a kezdeti suruseget szabalyozza ' ********** szuletes, eletben maradas vagy pusztulas *************** eleje: '********* kiiras ************** FOR i = 1 TO sz FOR j = 1 TO m cella(i, j) = ujcella(i, j) CIRCLE (meret * (i + 10), meret * (j + 10)), sugar, szin(cella(i, j) + 2) NEXT j NEXT i FOR i = 1 TO sz FOR j = 1 TO m szomszedszam = 0 elojeles = 0 ' ******** szomszedok szama ****************** FOR k = 1 TO 8 i1 = i + viz(k) j1 = j + fugg(k) IF i1 > sz OR i1 = 0 OR j1 > m OR j1 = 0 THEN GOTO ujszomszed szomszedszam = szomszedszam + ABS(cella(i1, j1)) elojeles = elojeles + cella(i1, j1) ujszomszed: NEXT k IF szomszedszam > 3 OR szomszedszam < 2 THEN ujcella(i, j) = 0 IF szomszedszam = 2 OR szomszedszam = 3 THEN ujcella(i, j) = cella(i, j) IF szomszedszam = 3 AND cella(i, j) = 0 THEN ujcella(i, j) = SGN(elojeles) NEXT j NEXT i o$ = INKEY$ IF o$ = " " THEN GOTO kezdi IF o$ <> "" THEN END GOTO eleje