<snapdata remixID="12521045"><project name="conways" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes>A Conway&apos;s simulator in Snap! using the tiles library! Runs very slowly.&#xD;&#xD;Press SPACE to pause the simulation. When paused, you can edit the graph.&#xD;&#xD;Blue cells = alive&#xD;Red cells = dead/not alive</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAA7lJREFUeF7t17FKlXEcxvG/UEMhIRE01S4uRpNjSxfTBQTeQBEu4dhVHJsduwUNwRYHwzZrMOTAGx5IAqUDDw809Dnz+3s458MXfF358frJNAqf1XcnhRUT/5vAyu8A366fjzfr35f+/o07G2Nvbe/6ubvfPo+Hs1dDgEvpPHCLwCLAP+Pbeboz9s/3x9bq1phP83FwcTCOfh6Nw4vDxfnxo+MbM48/vBCgvCKBGwFu3t8cp5en4+z52SLAy+lybJ9sj92zXQFGxI7+JuBPsD7+qcB1gFff4tnLr+PL6nzpF7p6D5ytzca9w4/jwaf3i+e9Ay5l88Bt74DTNFX+C6ZLIBFYEWDC5qYlIMCWpJ1IQIARm6OWgABbknYiAQFGbI5aAgJsSdqJBAQYsTlqCQiwJWknEhBgxOaoJSDAlqSdSECAEZujloAAW5J2IgEBRmyOWgICbEnaiQQEGLE5agkIsCVpJxIQYMTmqCUgwJaknUhAgBGbo5aAAFuSdiIBAUZsjloCAmxJ2okEBBixOWoJCLAlaScSEGDE5qglIMCWpJ1IQIARm6OWgABbknYiAQFGbI5aAgJsSdqJBAQYsTlqCQiwJWknEhBgxOaoJSDAlqSdSECAEZujloAAW5J2IgEBRmyOWgICbEnaiQQEGLE5agkIsCVpJxIQYMTmqCUgwJaknUhAgBGbo5aAAFuSdiIBAUZsjloCAmxJ2okEBBixOWoJCLAlaScSEGDE5qglIMCWpJ1IQIARm6OWgABbknYiAQFGbI5aAgJsSdqJBAQYsTlqCQiwJWknEhBgxOaoJSDAlqSdSECAEZujloAAW5J2IgEBRmyOWgICbEnaiQQEGLE5agkIsCVpJxIQYMTmqCUgwJaknUhAgBGbo5aAAFuSdiIBAUZsjloCAmxJ2okEBBixOWoJCLAlaScSEGDE5qglIMCWpJ1IQIARm6OWgABbknYiAQFGbI5aAgJsSdqJBAQYsTlqCQiwJWknEhBgxOaoJSDAlqSdSECAEZujloAAW5J2IgEBRmyOWgICbEnaiQQEGLE5agkIsCVpJxIQYMTmqCUgwJaknUhAgBGbo5aAAFuSdiIBAUZsjloCAmxJ2okEBBixOWoJCLAlaScSEGDE5qglIMCWpJ1IQIARm6OWgABbknYiAQFGbI5aAgJsSdqJBAQYsTlqCQiwJWknEhBgxOaoJSDAlqSdSECAEZujloAAW5J2IgEBRmyOWgICbEnaiQQEGLE5agkIsCVpJxIQYMTmqCXwCxgyILes4Hx3AAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="conways"><notes>A Conway&apos;s simulator in Snap! using the tiles library! Runs very slowly.&#xD;&#xD;Press SPACE to pause the simulation. When paused, you can edit the graph.&#xD;&#xD;Blue cells = alive&#xD;Red cells = dead/not alive</notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="for each tile sized %&apos;side&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="144.00000000000023" collapsed="false">Divide the stage into a grid of square regions with the given side length and perform an action at the center of each.</comment><header></header><code></code><translations>de:für jede Kachel der Größe _ _&#xD;</translations><inputs><input type="%n">20</input><input type="%ca"></input></inputs><script><block s="doDeclareVariables"><list><l>ext</l><l>dim</l><l>origin</l></list></block><block s="doSetVar"><l>ext</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="doSetVar"><l>dim</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block var="ext"/><block var="side"/></block></block></block><block s="doSetVar"><l>origin</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="ext"/><l>-2</l></block><block s="reportQuotient"><block s="reportDifference"><block var="ext"/><block s="reportVariadicProduct"><list><block var="dim"/><block var="side"/></list></block></block><l>2</l></block><block s="reportQuotient"><block var="side"/><l>2</l></block></list></block></block><block s="doWarp"><script><block s="doForEach"><l>coord</l><block s="reportCrossproduct"><block s="reportNumbers"><l>1</l><block var="dim"/></block></block><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block var="origin"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="coord"/><l>1</l></block><block var="side"/></list></block></list></block></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block></script></block-definition><block-definition s="for each %&apos;tile&apos; in %&apos;cols&apos; %&apos;col&apos; by %&apos;rows&apos; %&apos;row&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="181" collapsed="false">Divide the stage into a grid of same-sized rectangles specified by the number of columns and rows and perform an action at the center of each.</comment><header></header><code></code><translations>de:für jede Zelle _ im Raster _ _ zu _ _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">20</input><input type="%upvar"></input><input type="%n">15</input><input type="%upvar"></input><input type="%ca"></input></inputs><script><block s="doDeclareVariables"><list><l>ext</l><l>dim</l><l>origin</l></list></block><block s="doSetVar"><l>ext</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="doSetVar"><l>dim</l><block s="reportNewList"><list><block var="cols"/><block var="rows"/></list></block></block><block s="doSetVar"><l>tile</l><block s="reportQuotient"><block var="ext"/><block var="dim"/></block></block><block s="doSetVar"><l>origin</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="ext"/><l>-2</l></block><block s="reportQuotient"><block var="tile"/><l>2</l></block></list></block></block><block s="doWarp"><script><block s="doForEach"><l>coord</l><block s="reportCrossproduct"><block s="reportNumbers"><l>1</l><block var="dim"/></block></block><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block var="origin"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="coord"/><l>1</l></block><block var="tile"/></list></block></list></block></block><block s="doSetVar"><l>col</l><block s="reportListItem"><l>1</l><block var="coord"/></block></block><block s="doSetVar"><l>row</l><block s="reportListItem"><l>2</l><block var="coord"/></block></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block></script></block-definition><block-definition s="tell my clones to %&apos;smth&apos; with %&apos;list&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input><input type="%mult%s"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><block s="reportGet"><l><option>clones</option></l></block><script><block s="doTellTo"><block var="item"/><block var="smth"/><block var="list"/></block></script></block></script></block></script></block-definition><block-definition s="init clone w/ %&apos;code&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doTellTo"><block s="newClone"><l><option>myself</option></l></block><block var="code"/><list></list></block></script></block-definition><block-definition s="a random clone`s %&apos;x&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reportAskFor"><block s="reportListItem"><l><option>random</option></l><block s="reportGet"><l><option>clones</option></l></block></block><block var="x"/><list></list></block></block></script></block-definition><block-definition s="arc $turnRight %&apos;degrees&apos; ° radius %&apos;r&apos;" type="command" category="motion"><header></header><code></code><translations>de:Bogen $turnRight _ ° Radius _&#xD;</translations><inputs><input type="%n">90</input><input type="%n">50</input></inputs><script><block s="doDeclareVariables"><list><l>start</l><l>end</l><l>path</l><l>center</l></list></block><block s="doSetVar"><l>start</l><block s="reportVariadicSum"><list><block s="direction"></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>sign</option></l><block var="degrees"/></block><l>-90</l></list></block></list></block></block><block s="doSetVar"><l>end</l><block s="reportVariadicSum"><list><block var="start"/><block var="degrees"/></list></block></block><block s="doSetVar"><l>path</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block s="reportNewList"><list><block s="reportMonadic"><l><option>sin</option></l><l></l></block><block s="reportMonadic"><l><option>cos</option></l><l></l></block></list></block><block var="r"/></list></block></autolambda><list></list></block><block s="reportConcatenatedLists"><list><block s="reportNumbers"><block var="start"/><block var="end"/></block><block s="reportNewList"><list><block var="end"/></list></block></list></block></block></block><block s="doSetVar"><l>center</l><block s="reportDifference"><block s="getPosition"></block><block s="reportListItem"><l>1</l><block var="path"/></block></block></block><block s="doWarp"><script><block s="doForEach"><l>coord</l><block var="path"/><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block var="coord"/><block var="center"/></list></block></block></script></block></script></block><block s="setHeading"><block s="reportVariadicSum"><list><block var="end"/><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>sign</option></l><block var="degrees"/></block><l>90</l></list></block></list></block></block></script></block-definition><block-definition s="set state to %&apos;sda&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">switch<options>switch&#xD;dead&#xD;alive</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="sda"/><l>dead</l></list></block><script><block s="doSetVar"><l>alive</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="setEffect"><l><option>color</option></l><l>0</l></block></script><list><block s="reportVariadicEquals"><list><block var="sda"/><l>alive</l></list></block><script><block s="doSetVar"><l>alive</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="setEffect"><l><option>color</option></l><l>50</l></block></script><l><bool>true</bool></l><script><block s="doSetVar"><l>alive</l><block s="reportNot"><block var="alive"/></block></block><block s="changeEffect"><l><option>color</option></l><l>50</l></block></script></list></block></script></block-definition><block-definition s="rules: $nl S - %&apos;s&apos; $nl B - %&apos;b&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input><input type="%mult%n"></input></inputs><script><block s="doDeclareVariables"><list><l>s+b</l><l>sNew</l><l>bNew</l></list></block><block s="doSetVar"><l>s+b</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="S+B %n"><l></l></custom-block></autolambda><list></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="b"/><l></l></block></autolambda><list></list></block><block var="s"/></block></block></block><block s="doSetVar"><l>sNew</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="S %n"><l></l></custom-block></autolambda><list></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="b"/><l></l></block></block></autolambda><list></list></block><block var="s"/></block></block></block><block s="doSetVar"><l>bNew</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="B %n"><l></l></custom-block></autolambda><list></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="s"/><l></l></block></block></autolambda><list></list></block><block var="b"/></block></block></block><block s="doReport"><block s="reportListAttribute"><l><option>flatten</option></l><block s="reportNewList"><list><block var="s+b"/><block var="sNew"/><block var="bNew"/></list></block></block></block></script></block-definition><block-definition s="S+B %&apos;n&apos;" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">3</input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><l>neighbours</l></list></block><block var="n"/></list></block></block></block></script></block-definition><block-definition s="$flash sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="lists"><comment x="0" y="0" w="161.14285714285708" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment><header></header><code></code><translations>ca:ordena _ segons criteri _&#xD;</translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="data"/><block var="function"/></list></block></block></script></block-definition><block-definition s="$flash assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations>ca:associació _ _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block var="key"/><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block><block var="a-list"/></block></block></script></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doForEach"><l>inner item</l><block var="data"/><script><block s="doSetVar"><l>item</l><block var="inner item"/></block><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="☠︎ linked? %&apos;data&apos;" type="predicate" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_linked(list)</l><list><block var="data"/></list></block></block></script></block-definition><block-definition s="☠︎ link %&apos;data&apos;" type="reporter" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportCDR"><block var="data"/></block></block></block></script></block-definition><block-definition s="printable %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="188.66666666666666" collapsed="false">Takes a (possibly deep) list as input,&#xD;and reports a human-readable text form &#xD;of the list (namely, Lisp notation).&#xD;&#xD;Will not work on circular lists.</comment><header></header><code></code><translations>ca:notació textual de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportAtomicCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="printable %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block><l>)</l></list></block></block></script></block-definition><block-definition s="sentence %&apos;phrase&apos;" type="reporter" category="lists"><comment x="0" y="0" w="302.6666666666667" collapsed="false">SENTENCE is the main constructor for sentences, represented&#xD;as lists of words.  It takes zero or more inputs, each of which can&#xD;be either a list or a text string.  If a list, the input is assumed to be&#xD;a list of words.  If a text string, it is converted to a list of words using&#xD;SENTENCE→LIST.  Then all the lists of words are appended to form a new list of words.&#xD;&#xD;If the inputs are lists of lists rather than lists of words, SENTENCE,&#xD;like APPEND, does only one level of flattening, reporting a list of&#xD;all the items of all the input lists.</comment><header></header><code></code><translations>ca:frase _&#xD;</translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><l></l><custom-block s="sentence $arrowRight list %txt"><l></l></custom-block></block></autolambda><list></list></block><block var="phrase"/></block></block></block></script></block-definition><block-definition s="$flash zip %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="192" collapsed="false">ZIP takes any number of lists as inputs.  The lists should all be the same length.  ZIP reports a list of lists in which the first item is a list of all the first items, the second item is a list of all the second items, etc.&#xD;Viewing the inputs as the rows of a matrix, ZIP reports its transpose.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>columns</option></l><block var="lists"/></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="lists"><comment x="0" y="0" w="105.33333333333333" collapsed="false">The identity function reports its input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="multimap %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="267.3333333333333" collapsed="false">Takes as input a function of N inputs and N lists.&#xD;The function is called with item 1 of all the lists as its inputs, with item 2 of all the lists as its inputs, and so on.  (The lists should all be the same length.)</comment><header></header><code></code><translations>ca:multi-mapeja _ sobre _&#xD;</translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="function"/><custom-block s="%s"><l></l></custom-block></block></autolambda><list></list></block><custom-block s="$flash zip %mult%l"><block var="lists"/></custom-block></block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="196" collapsed="false">Takes a sentence in text string form and reports the sentence as a list of its words.</comment><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;pt:uma lista com as palavras da frase _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><l></l></block><l>0</l></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></block></script></block-definition><block-definition s="S %&apos;n&apos;" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">2</input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><custom-block s="S+B %n"><block var="n"/></custom-block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><l>alive</l></list></block></list></block></block></block></script></block-definition><block-definition s="B %&apos;n&apos;" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">3</input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><custom-block s="S+B %n"><block var="n"/></custom-block><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><l>alive</l></list></block></list></block></list></block></block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="805"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="806"></list></costumes><sounds><list struct="atomic" id="807"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="238" y="178.5" heading="90" scale="0.35" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="812"><costumes><list id="813"><item><ref mediaID="Sprite_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="814"></list></sounds><blocks></blocks><variables><variable name="alive"><bool>false</bool></variable><variable name="neighbours"><l>0</l></variable></variables><scripts><script x="436" y="58"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportNot"><block var="running?"/></block><script><custom-block s="set state to %s"><l>switch</l></custom-block></script><list></list></block></script><script x="18" y="10"><block s="receiveGo"></block><block s="hide"></block><block s="setScale"><l>35</l></block><block s="clearEffects"></block><block s="doSetVar"><l>running?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>alive</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="tell my clones to %cmdRing with %mult%s"><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></custom-block><custom-block s="for each tile sized %n %ca"><l>17</l><script><custom-block s="init clone w/ %cs"><script><block s="show"></block><block s="goToLayer"><l><option>back</option></l></block></script></custom-block></script></custom-block></script><script x="374" y="175"><block s="receiveKey"><l><option>space</option></l><list></list></block><block s="doSetVar"><l>running?</l><block s="reportNot"><block var="running?"/></block></block></script><script x="373" y="278.75"><block s="receiveOnClone"></block><block s="doIf"><block var="random?"/><script><block s="doRepeat"><block s="reportRandom"><l>1</l><l>5</l></block><script><custom-block s="set state to %s"><l>switch</l></custom-block></script></block></script><list></list></block><block s="doForever"><script><block s="doIf"><block var="running?"/><script><block s="doSetVar"><l>neighbours</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></autolambda><list></list></block><block s="reportAskFor"><block s="reportGet"><l><option>neighbors</option></l></block><block s="reifyReporter"><autolambda><block var="alive"/></autolambda><list></list></block><list></list></block></block></block></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="neighbours"/><l>2</l></list></block><block var="alive"/></list></block><block s="reportVariadicEquals"><list><block var="neighbours"/><l>3</l></list></block></list></block><script><custom-block s="set state to %s"><l>alive</l></custom-block></script><script><custom-block s="set state to %s"><l>dead</l></custom-block></script></block></script><list></list></block></script></block></script><script x="100.1103515625" y="325"><block s="doSetVar"><l>random?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script x="10" y="696.25"><block s="reportTextSplit"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block var="neighbours"/><l></l></list></block></autolambda><list></list></block><l><option>blocks</option></l></block></script><comment x="92.1103515625" y="426" w="197" collapsed="false">conway:&#xD;cell with 2 or 3 neighbors survives&#xD;cell with 3 neigbours becomes alive&#xD;&lt; 2 or &gt; 3 (all else) die&#xD;&#xD;can be represented as S23,B3</comment><script x="40" y="534.25"><block s="doSetVar"><l>rules</l><custom-block s="rules: %br S - %mult%n %br B - %mult%n"><list><l>2</l><l>3</l></list><list><l>3</l></list></custom-block></block></script><script x="60.6416015625" y="633.5"><block s="reportVariadicOr"><block var="rules"/></block></script></scripts></sprite><watcher scope="Sprite" var="alive" style="normal" x="10" y="10.000000000000007" color="243,118,29" hidden="true"/><watcher var="running?" style="large" x="0" y="-0.999998000000005" color="243,118,29"/><watcher var="random?" style="normal" x="10" y="31.000002000000002" color="243,118,29" hidden="true"/><watcher var="rules" style="normal" x="10" y="55.000004000000004" color="243,118,29" extX="314" extY="116" hidden="true"/><watcher scope="Sprite" var="neighbours" style="normal" x="10" y="193.00000599999998" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="running?"><bool>true</bool></variable><variable name="random?"><bool>false</bool></variable><variable name="rules"><list id="1000"><item><context id="1001"><inputs></inputs><variables></variables><block s="reportVariadicEquals"><list><block var="neighbours"/><l>3</l></list></block><receiver></receiver><origin></origin></context></item><item><context id="1009"><inputs></inputs><variables></variables><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="neighbours"/><l>2</l></list></block><block var="alive"/></list></block><receiver></receiver><origin></origin></context></item></list></variable></variables></scene></scenes></project><media name="conways" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><costume name="Untitled" center-x="22" center-y="22.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAtCAYAAADV2ImkAAAAAXNSR0IArs4c6QAAAHRJREFUaEPt1rENgDAMRUFngmzJTiwHo4SeggZ9S5GOBYiOF+NxzTpqo2fcs9ZG5y0HTn8twoRfApKQhCTSDRAm/C1gDqcLIUzYHE43QJiwP11zAy5dM7hdIg1OmLCxlm6AMGHbWnMDLl0z+Ja7xNmM9Ot1D3o2VdeujrZ0AAAAAElFTkSuQmCC" mediaID="Sprite_cst_Untitled"/></media></snapdata>