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








