Differences between revisions 5 and 19 (spanning 14 versions)
Revision 5 as of 2007-01-05 23:16:02
Size: 1210
Editor: KaiJaeger
Comment:
Revision 19 as of 2007-03-09 09:03:17
Size: 660
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= FunExamples = ## page was renamed from FunExamples
= John Conways`s "Game of Life" =
Line 3: Line 4:
[[TableOfContents]]

== John Conways`s "Game of Life" ==

This dynamic function takes a boolean matrix as argument and return a boolean matrix with the new generation. It is taken from [http://www.dyalog.dk/dfnsdws/n_life.htm Dyalog`s] Website. Note that this website is at the moment ist not supporting Unicode. You should see APL characters with Internet Explorer but not with other browser.
This function takes a boolean matrix as argument and returns a boolean matrix with the new generation.
Line 10: Line 7:
life←{
     ↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵
 }
  ∇ nextGeneration←Life currentGeneration
[1] ⍝⍝ Take a matrix of Booleans and returns one
[2] nextGeneration←↑1 currentGeneration∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂currentGeneration
  ∇
Line 16: Line 14:
== Meaning of Life (Hitchhiker`s Guide to the Galaxy) == == Title 2 ==
Line 18: Line 16:
As you might know, the answer to the ultimate question is '''42''', according to [http://en.wikipedia.org/wiki/Douglas_adams Douglas Adams`s] famous book "[http://en.wikipedia.org/wiki/The_Hitchhiker's_Guide_to_the_Galaxy Hitchhiker`s Guide to the Galaxy"]. We do not need a supercomputer and millions of years to proof that. Whatever you specify as right argument to this function:  * wiki:WikiPedia/Conways_Game_of_Life
 * [http://catpad.net/michael/apl/ Conway's Game of Life in one line of APL]
 * [http://www.vector.org.uk/archive/v213/cliff213.htm Time(r) for the Game of Life]
Line 20: Line 20:
{{{
MeaningOfLife←{+.×/⍎⊖⍕⊃¨⊂|⌊-*+○⌈∨.∧/>\</×÷!⌽⍉⍉⌹~⍴⍋⍒,⍟?⍳''≡1↑0⍴∊⍵}
}}}

...will produce a reasonable answer, regardless which type/lenght/depth/rank it is.
----
CategoryShowcases

John Conways`s "Game of Life"

This function takes a boolean matrix as argument and returns a boolean matrix with the new generation.

  ∇ nextGeneration←Life currentGeneration
[1] ⍝⍝ Take a matrix of Booleans and returns one
[2]  nextGeneration←↑1 currentGeneration∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂currentGeneration

Title 2


CategoryShowcases

GameOfLife (last edited 2015-01-28 19:11:48 by KaiJaeger)