<snapdata remixID="15015182"><project name="Sand simulation v2" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes>12x16 sand simulation project&#xD;&#xD;Note:&#xD;It is really un-optimized and you might get low fps.&#xD;</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAACJUlEQVR4Xu3SwQkAMAwDsWb/oZvSJe4jL2A4NPftmAJRgQEwKu/2FwAQhLQAgGl+5wAykBYAMM3vHEAG0gIApvmdA8hAWgDANL9zABlICwCY5ncOIANpAQDT/M4BZCAtAGCa3zmADKQFAEzzOweQgbQAgGl+5wAykBYAMM3vHEAG0gIApvmdA8hAWgDANL9zABlICwCY5ncOIANpAQDT/M4BZCAtAGCa3zmADKQFAEzzOweQgbQAgGl+5wAykBYAMM3vHEAG0gIApvmdA8hAWgDANL9zABlICwCY5ncOIANpAQDT/M4BZCAtAGCa3zmADKQFAEzzOweQgbQAgGl+5wAykBYAMM3vHEAG0gIApvmdA8hAWgDANL9zABlICwCY5ncOIANpAQDT/M4BZCAtAGCa3zmADKQFAEzzOweQgbQAgGl+5wAykBYAMM3vHEAG0gIApvmdA8hAWgDANL9zABlICwCY5ncOIANpAQDT/M4BZCAtAGCa3zmADKQFAEzzOweQgbQAgGl+5wAykBYAMM3vHEAG0gIApvmdA8hAWgDANL9zABlICwCY5ncOIANpAQDT/M4BZCAtAGCa3zmADKQFAEzzOweQgbQAgGl+5wAykBYAMM3vHEAG0gIApvmdA8hAWgDANL9zABlICwCY5ncOIANpAQDT/M4BZCAtAGCa3zmADKQFAEzzOweQgbQAgGl+5wAykBYAMM3vHEAG0gIApvmdL4Lj3qhM9vcMAAAAEGRlQkcwQkMyOTk1QTI0QUNEMjA4KfXpjgAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="Sand simulation v2" palette="single"><notes>12x16 sand simulation project&#xD;&#xD;Note:&#xD;It is really un-optimized and you might get low fps.&#xD;</notes><hidden></hidden><headers></headers><code></code><blocks><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;pl:$flash sortuj _ za pomocą _&#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;pl:$flash skojarz _ _&#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;pl:_ dla każdego _ z _ _&#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;pl:tekstowa _&#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;pl:zdanie _&#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>pl:$flash spakuj _&#xD;</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;pl:mapuj wielokrotnie _ na _&#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;pl:zdanie $arrowRight lista _&#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="process frame" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="tick" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>templist</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doRepeat"><l>192</l><script><block s="doAddToList"><l>0</l><block var="templist"/></block></script></block></script></block><custom-block s="%upvar for each %upvar of %l %ca"><l>#</l><l>item</l><block var="newtiles"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="#"/><block var="newtiles"/></block><l>1</l></list></block><script><block s="doReplaceInList"><block var="#"/><block var="templist"/><l>1</l></block><block s="doReplaceInList"><block var="#"/><block var="newtiles"/><l>0</l></block></script><list></list></block></script></custom-block><custom-block s="%upvar for each %upvar of %l %ca"><l>#</l><l>item</l><block var="tiles"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="#"/><block var="tiles"/></block><l>1</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="#"/><l>1</l></list></block><block var="tiles"/></block><l>0</l></list></block><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="#"/><l>12</l></block><l>0</l></list></block></block><script><block s="doReplaceInList"><block s="reportVariadicSum"><list><block var="#"/><l>1</l></list></block><block var="templist"/><l>1</l></block></script><script><block s="doReplaceInList"><block var="#"/><block var="templist"/><l>1</l></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportRandom"><l>0</l><l>1</l></block><l>0</l></list></block><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="#"/><l>13</l></list></block><block var="tiles"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="#"/><l>13</l></list></block><block var="templist"/></block><l>0</l></list></block></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportModulus"><block s="reportVariadicSum"><list><block var="#"/><l>13</l></list></block><l>12</l></block><l>1</l></list></block></block></list></block><script><block s="doReplaceInList"><block s="reportVariadicSum"><list><block var="#"/><l>13</l></list></block><block var="templist"/><l>1</l></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="#"/><l>-11</l></list></block><block var="tiles"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="#"/><l>-11</l></list></block><block var="templist"/></block><l>0</l></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportModulus"><block s="reportVariadicSum"><list><block var="#"/><l>-11</l></list></block><l>12</l></block><l>1</l></list></block></block><block s="reportVariadicLessThan"><list><l>0</l><block s="reportVariadicSum"><list><block var="#"/><l>-11</l></list></block></list></block></list></block><script><block s="doReplaceInList"><block s="reportVariadicSum"><list><block var="#"/><l>-11</l></list></block><block var="templist"/><l>1</l></block></script><script><block s="doReplaceInList"><block var="#"/><block var="templist"/><l>1</l></block></script></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="#"/><l>-11</l></list></block><block var="tiles"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="#"/><l>-11</l></list></block><block var="templist"/></block><l>0</l></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportModulus"><block s="reportVariadicSum"><list><block var="#"/><l>-11</l></list></block><l>12</l></block><l>1</l></list></block></block><block s="reportVariadicLessThan"><list><l>0</l><block s="reportVariadicSum"><list><block var="#"/><l>-11</l></list></block></list></block></list></block><script><block s="doReplaceInList"><block s="reportVariadicSum"><list><block var="#"/><l>-11</l></list></block><block var="templist"/><l>1</l></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="#"/><l>13</l></list></block><block var="tiles"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="#"/><l>13</l></list></block><block var="templist"/></block><l>0</l></list></block></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportModulus"><block s="reportVariadicSum"><list><block var="#"/><l>13</l></list></block><l>12</l></block><l>1</l></list></block></block></list></block><script><block s="doReplaceInList"><block s="reportVariadicSum"><list><block var="#"/><l>13</l></list></block><block var="templist"/><l>1</l></block></script><script><block s="doReplaceInList"><block var="#"/><block var="templist"/><l>1</l></block></script></block></script></block></script></block></script></block></script><list></list></block></script></custom-block><block s="doSetVar"><l>tiles</l><block var="templist"/></block></script><scripts><script x="267.8" y="881.3"><block s="reportModulus"><block s="reportVariadicSum"><list><block var="#"/><l>-7</l></list></block><l>6</l></block></script><script x="306.4" y="26.6"><block s="doSetVar"><l>templist</l><custom-block s="%s"><block var="newtiles"/></custom-block><comment w="90" collapsed="false">would be faster but does NOT work&#xD;idk why not </comment></block><block s="doSetVar"><l>newtiles</l><custom-block s="%s"><block var="emptytiles (fes)"/></custom-block></block></script><script x="361.8" y="380.74999999999994"><block s="doReplaceInList"><block var="#"/><block var="templist"/><l>1</l></block></script></scripts></block-definition></blocks><primitives><block-definition s="replace item %&apos;#1&apos; of %&apos;#2&apos; with %&apos;#3&apos;" type="command" category="lists" selector="doReplaceInList" primitive="doReplaceInList"><header></header><code></code><translations></translations><inputs><input type="%n">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input><input type="%l" readonly="true"></input><input type="%s">thing</input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>doReplaceInList</l></block></script></block-definition></primitives><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="667"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAEGRlQkc0QTYxODdBMEQ1ODZFODU0/qsRQwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="668"></list></costumes><sounds><list struct="atomic" id="669"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><watcher var="tiles" style="normal" x="3" y="2" color="243,118,29" hidden="true"/><watcher var="current clone" style="normal" x="9.999999999999773" y="154.14999800000015" color="243,118,29" hidden="true"/><watcher scope="Sprite" var="current clone (local)" style="normal" x="9.999999999999773" y="154.14999800000015" color="243,118,29" hidden="true"/><watcher var="newtiles" style="normal" x="13.000000000000227" y="6.999998000000005" color="243,118,29" hidden="true"/><watcher var="templist" style="normal" x="129.00000000000023" y="74.999998" color="243,118,29" hidden="true"/><watcher var="emptytiles (fes)" style="normal" x="64" y="5.999998000000005" color="243,118,29" hidden="true"/><sprite name="Sprite" idx="1" x="-1455" y="135" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="3" color="80,80,80,1" pen="tip" id="680"><costumes><list id="681"><item><ref mediaID="Sand simulation v2_Sprite_cst_pixil-frame-3"></ref></item><item><ref mediaID="Sand simulation v2_Sprite_cst_Untitled"></ref></item><item><ref mediaID="Sand simulation v2_Sprite_cst_pixil-frame-3(2)"></ref></item><item><ref mediaID="Sand simulation v2_Sprite_cst_pixil-frame-3(3)"></ref></item></list></costumes><sounds><list struct="atomic" id="682"></list></sounds><blocks></blocks><variables><variable name="current clone (local)"><l></l></variable></variables><scripts><script x="324.4" y="30"><block s="receiveMessage"><l>start</l><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="current clone (local)"/><l></l></list></block><script><block s="goToLayer"><l><option>front</option></l></block><block s="doSwitchToCostume"><l>pixil-frame-3(2)</l></block><block s="show"></block><block s="setEffect"><l><option>ghost</option></l><l>80</l></block><block s="setEffect"><l><option>brightness</option></l><l>0</l></block><block s="doForever"><script><block s="gotoXY"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block s="reportMouseX"></block><l>30</l></block></block><l>30</l></list></block><l>15</l></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block s="reportMouseY"></block><l>30</l></block></block><l>30</l></list></block><l>15</l></list></block></block></script></block></script><list></list></block></script><script x="822" y="72.4"><block s="receiveGo"></block><block s="doSwitchToCostume"><l>pixil-frame-3</l></block><block s="hide"></block><block s="setEffect"><l><option>ghost</option></l><l>0</l></block><block s="doSetVar"><l>emptytiles (fes)</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doRepeat"><l>192</l><script><block s="doAddToList"><l>0</l><block var="emptytiles (fes)"/></block></script></block></script></block><block s="doSetVar"><l>templist</l><block var="emptytiles (fes)"/></block><block s="doSetVar"><l>tiles</l><block var="emptytiles (fes)"/></block><block s="doSetVar"><l>newtiles</l><block var="emptytiles (fes)"/></block><block s="doSetVar"><l>current clone (local)</l><l></l></block><block s="doSetVar"><l>current clone</l><l>1</l></block><block s="doWarp"><script><block s="doFor"><l>j</l><l>1</l><l>16</l><script><block s="doFor"><l>i</l><l>1</l><l>12</l><script><block s="gotoXY"><block s="reportDifference"><block s="reportVariadicProduct"><list><block var="j"/><l>30</l></list></block><l>255</l></block><block s="reportVariadicSum"><list><block s="reportDifference"><l></l><block s="reportVariadicProduct"><list><block var="i"/><l>30</l></list></block></block><l>195</l></list></block></block><block s="setEffect"><l><option>brightness</option></l><block s="reportRandom"><l>-10</l><l>15</l></block></block><block s="createClone"><l><option>myself</option></l></block></script></block></script></block></script></block><block s="doBroadcast"><l>start</l><list></list></block><block s="doForever"><script><custom-block s="tick"></custom-block><block s="doBroadcast"><l>update</l><list></list></block></script></block></script><script x="10" y="35.75"><block s="receiveOnClone"></block><block s="doSetVar"><l>current clone (local)</l><block var="current clone"/></block><block s="doChangeVar"><l>current clone</l><l>1</l></block></script><script x="712.4" y="363.2"><block s="show"></block></script><script x="72.19999999999999" y="403.2"><block s="receiveInteraction"><l><option>pressed</option></l></block><block s="doReplaceInList"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="xPosition"></block><l>-15</l></list></block><l>240</l></list></block><l>30</l></block><l>12</l></list></block><block s="reportQuotient"><block s="reportDifference"><l></l><block s="reportDifference"><block s="reportVariadicSum"><list><block s="yPosition"></block><l>-15</l></list></block><l>180</l></block></block><l>30</l></block></list></block><block var="newtiles"/><l>1</l></block></script><script x="500.4" y="316.8"><block s="receiveMessage"><l>update</l><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="current clone (local)"/><block var="tiles"/></block><l>1</l></list></block><script><block s="show"></block></script><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="current clone (local)"/><block var="tiles"/></block><l>0</l></list></block><script><block s="hide"></block></script></list></block></script></scripts></sprite></sprites></stage><variables><variable name="tiles"><list struct="atomic" id="934">0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1</list></variable><variable name="templist"><list struct="atomic" id="935">0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</list></variable><variable name="current clone"><l>193</l></variable><variable name="newtiles"><list struct="atomic" id="936">0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</list></variable><variable name="emptytiles (fes)"><ref id="936"></ref></variable></variables></scene></scenes></project><media name="Sand simulation v2" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><costume name="pixil-frame-3" center-x="15" center-y="15" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAARElEQVRIS+3TsQ0AIAhFQdl/BcdzBWvt7T82xwCQXB611zzjw5TDXeqou6QHatQxAXHFaN/FqFHHBMQVo/XH4hJXTOACB/5nt7xlAnsAAAAQZGVCRzNBOTBDOUZBQkNDQTlDRkYqbsmtAAAAAElFTkSuQmCC" mediaID="Sand simulation v2_Sprite_cst_pixil-frame-3"/><costume name="Untitled" center-x="120" center-y="90" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAAC0CAYAAACqnKHoAAAEXElEQVR4Xu3TAQ0AAAgCQelf2hy/nQnYITtHgEBWYNnkghMgcAbsCQiEBQw4XJ7oBAzYDxAICxhwuDzRCRiwHyAQFjDgcHmiEzBgP0AgLGDA4fJEJ2DAfoBAWMCAw+WJTsCA/QCBsIABh8sTnYAB+wECYQEDDpcnOgED9gMEwgIGHC5PdAIG7AcIhAUMOFye6AQM2A8QCAsYcLg80QkYsB8gEBYw4HB5ohMwYD9AICxgwOHyRCdgwH6AQFjAgMPliU7AgP0AgbCAAYfLE52AAfsBAmEBAw6XJzoBA/YDBMICBhwuT3QCBuwHCIQFDDhcnugEDNgPEAgLGHC4PNEJGLAfIBAWMOBweaITMGA/QCAsYMDh8kQnYMB+gEBYwIDD5YlOwID9AIGwgAGHyxOdgAH7AQJhAQMOlyc6AQP2AwTCAgYcLk90AgbsBwiEBQw4XJ7oBAzYDxAICxhwuDzRCRiwHyAQFjDgcHmiEzBgP0AgLGDA4fJEJ2DAfoBAWMCAw+WJTsCA/QCBsIABh8sTnYAB+wECYQEDDpcnOgED9gMEwgIGHC5PdAIG7AcIhAUMOFye6AQM2A8QCAsYcLg80QkYsB8gEBYw4HB5ohMwYD9AICxgwOHyRCdgwH6AQFjAgMPliU7AgP0AgbCAAYfLE52AAfsBAmEBAw6XJzoBA/YDBMICBhwuT3QCBuwHCIQFDDhcnugEDNgPEAgLGHC4PNEJGLAfIBAWMOBweaITMGA/QCAsYMDh8kQnYMB+gEBYwIDD5YlOwID9AIGwgAGHyxOdgAH7AQJhAQMOlyc6AQP2AwTCAgYcLk90AgbsBwiEBQw4XJ7oBAzYDxAICxhwuDzRCRiwHyAQFjDgcHmiEzBgP0AgLGDA4fJEJ2DAfoBAWMCAw+WJTsCA/QCBsIABh8sTnYAB+wECYQEDDpcnOgED9gMEwgIGHC5PdAIG7AcIhAUMOFye6AQM2A8QCAsYcLg80QkYsB8gEBYw4HB5ohMwYD9AICxgwOHyRCdgwH6AQFjAgMPliU7AgP0AgbCAAYfLE52AAfsBAmEBAw6XJzoBA/YDBMICBhwuT3QCBuwHCIQFDDhcnugEDNgPEAgLGHC4PNEJGLAfIBAWMOBweaITMGA/QCAsYMDh8kQnYMB+gEBYwIDD5YlOwID9AIGwgAGHyxOdgAH7AQJhAQMOlyc6AQP2AwTCAgYcLk90AgbsBwiEBQw4XJ7oBAzYDxAICxhwuDzRCRiwHyAQFjDgcHmiEzBgP0AgLGDA4fJEJ2DAfoBAWMCAw+WJTsCA/QCBsIABh8sTnYAB+wECYQEDDpcnOgED9gMEwgIGHC5PdAIG7AcIhAUMOFye6AQM2A8QCAsYcLg80QkYsB8gEBYw4HB5ohMwYD9AICxgwOHyRCdgwH6AQFjAgMPliU7AgP0AgbCAAYfLE52AAfsBAmEBAw6XJzoBA/YDBMICBhwuT3QCBuwHCIQFDDhcnugEHpD1ALUzgduwAAAAEGRlQkdDNzUxRTAxMDg5OEM0MkM4Qs4wywAAAABJRU5ErkJggg==" mediaID="Sand simulation v2_Sprite_cst_Untitled"/><costume name="pixil-frame-3(2)" center-x="16" center-y="16" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAARElEQVRYR+3XOwEAIAgEUChgJ5PbyQJ+BivI8m5h5HgbGScz+rrzd1qMzKrl71gFCBAgQIAAAQIECBAgQIBAvUD1e74BIftH/SzhsIIAAAAQZGVCR0RCQzUxMEMyNDZFNTc2RUIwAa8UAAAAAElFTkSuQmCC" mediaID="Sand simulation v2_Sprite_cst_pixil-frame-3(2)"/><costume name="pixil-frame-3(3)" center-x="17" center-y="17" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAZ0lEQVRYR+2YMRIAEAwEpfEm/6+8ScMwKDTXCTOrQOeslSIW5qgx1bW/uVrJ1s8bk1eIdeEexrxD7DAEOUTkac6fCRGIqGqNIziCI4oAjihC1BEcwRFFAEcUIeoIjvzjyDNtiVcaNQ17IVMrsCh2NgAAABBkZUJHQjFFRjkzMkE2REMxRDAwRvYvlVgAAAAASUVORK5CYII=" mediaID="Sand simulation v2_Sprite_cst_pixil-frame-3(3)"/></media></snapdata>