2013. augusztus 17., szombat

The game of life

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:h1pen 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