Harmadik lecke
Egy "sajátautomata" algoritmust valósítottam meg GPP-RULES-ban, a híres
John Conway, a Cambridge Egyetem matematikusa " The game of life", magyarul életjáték. A cím megtévesztő, ez komoly algoritmus!
Itt most csak a GPP-RULES specifikus dolgokat ismertetem:
Változók:
- lena - megadja az aktuális sorban az oszlopok számát
- lenn - megadja az aktuális oszlopban az sorok számát
- thisa - megadja az aktuális cella melyik oszlopban van
- thisn - megadja az aktuális cella melyik sorban van
Függvények:
- prev( a,n ) - lehetőség van a cella korábbi tartalmához hozzáférni
- call( a,n ) - szubrutin cella hívás
Tervezett rubrikák:
- a0 - idő
- beállítás
- prev (ez a parancs bekapcsolja, hogy tárolja el a rubrika eredményét mielött újjat számoln)
- képlet
- = sec
- b0 - frame/sec
- képlet
- = 1/(sec-prev(0,0)) // ugye most kivonjuk az aktuális időből az elözőt és veszük a reciprokát
- a1:h1 - képsorozat első a halott, második élő és még lehet további 6 kép
- beállítások
- a1 - enter pen 0 pic die.png
- b1 - pen 1 pic live.png
- c1:h1 - pen 0 pic die.png
- képleterk(sime értékek)
- a1 - 0
- b1 - 1
- c1:h1 - 0
- a2 - csak egy sima elválasztó
- a3 - automatikusan megkaphatjuk itt a játék terület magasságát, hogy tetszés szerint lehessen bővíteni. Ezzel fogjuk modulozni az num-okat(oszlop cím).
- képlet
- = lenn - prot + 1
- b3 - num offszet
- képlet
- = a3-prot
- c3 - a subrutinként használt cella, itt nem csinál semmit, majd a játéktér elemei hivogatják ( csak egyszer kell ilyen hosszú képletet implementálni és a cellák relatívan használják )
- képlet
- = prev( (thisa-1+lena)%lena, (thisn-1+b3)%a3+prot) + prev( thisa, (thisn-1+b3)%a3+prot) + prev( (thisa+1+lena)%lena, (thisn-1+b3)%a3+prot) + prev( (thisa-1+lena)%lena, thisn)+prev( (thisa+1+lena)%lena, thisn) + prev((thisa-1+lena)%lena, (thisn+1+b3)%a3+prot) + prev( thisa, (thisn+1+b3)%a3+prot) + prev((thisa+1+lena)%lena, (thisn+1+b3)%a3+prot)
- d3 - a teremtő bioritmusa, ez gyujtja be a z élet lángját
- képlet
- = ((sin(sec/10)+1)/2)*2
- a5:h12 - a játék mező de tetszőleges
- beálítások
- a5 - enter protect prev
- b5:h5 - prev
- a6 - enter prev
- b6:h6 - prev
- .
- .
- an - enter prev
- bn:hn - prev
- képlet (gyakorlatilag az összes, egy tetszőlegeset kiválasztasz és ott hozzáadod a gyujtó számot, ha beindult meg beszorzod a d3-at 0-lal)
- = call(2,3)/8 ? a1:h1
Nincsenek megjegyzések:
Megjegyzés küldése