{"id":308,"date":"2009-06-07T09:22:05","date_gmt":"2009-06-07T16:22:05","guid":{"rendered":"https:\/\/actionsnippet.com\/?p=1503"},"modified":"2009-06-07T09:22:05","modified_gmt":"2009-06-07T16:22:05","slug":"tetris-sand-ca","status":"publish","type":"post","link":"https:\/\/actionsnippet.com\/?p=308","title":{"rendered":"Tetris Sand CA"},"content":{"rendered":"<pre class=\"brush: as3; title: ; notranslate\" title=\"\">\r\nstage.frameRate = 30;\r\nscaleX = scaleY = 2.5;\r\nvar canvas:BitmapData = new BitmapData(200,200,false, 0x000000);\r\naddChild(new Bitmap(canvas));\r\nvar w:int = canvas.width;\r\nvar size:int = canvas.width * canvas.height;\r\nvar read:Vector.&lt;uint&gt; = new Vector.&lt;uint&gt;(size);\r\nvar write:Vector.&lt;uint&gt; = new Vector.&lt;uint&gt;(size);\r\n\r\nread = canvas.getVector(canvas.rect);\r\nvar loc:int = 199*w;\r\nfor(var i:int = 0; i &lt;= 200; i++){\r\n       read&#x5B;loc+i]=0xFFFFFFFF;\r\n}\r\nwrite = read.concat();\r\n\r\nvar shapes:Array = &#x5B;];\r\nshapes&#x5B;0] = &#x5B;&#x5B;1,1],&#x5B;1,1]];\r\nshapes&#x5B;1] = &#x5B;&#x5B;1,1,1,1]];\r\nshapes&#x5B;2] = &#x5B;&#x5B;1],&#x5B;1],&#x5B;1],&#x5B;1]];\r\nshapes&#x5B;3] = &#x5B;&#x5B;1,1,1],&#x5B;0,1,0]];\r\nshapes&#x5B;4] = &#x5B;&#x5B;1,0],&#x5B;1,1],&#x5B;1,1],&#x5B;0,1]];\r\nshapes&#x5B;5] = &#x5B;&#x5B;1,0,0],&#x5B;1,1,1]];\r\nshapes&#x5B;6] = &#x5B;&#x5B;1,1,0], &#x5B;0,1,1]];\r\nshapes&#x5B;7] = &#x5B;&#x5B;1,1], &#x5B;1,0],&#x5B;1,0]];\r\nfunction drawShape(xp:int, yp:int, pattern:Array, col:uint):void{\r\n\tvar i:int = 0;\r\n\tvar loc:int = xp + yp * w;\r\n\tif (int(Math.random()*2) == 1){\r\n\t\tpattern.reverse();\r\n\t}\r\n\tif (int(Math.random()*2)){\r\n\t\tfor (i= 0; i&lt;pattern.length; i++){\r\n\t\t\tpattern&#x5B;i].reverse();\r\n\t\t}\r\n\t}\r\n\tfor (i = 0; i&lt;pattern.length; i++){\r\n\t\t for (var j:int = 0; j&lt;pattern&#x5B;i].length; j++){\r\n\t\t\t if (pattern&#x5B;i]&#x5B;j] == 1){\r\n\t\t\t\twrite&#x5B;loc + i * w + j] = col;\r\n\t\t\t }\r\n\t\t}\r\n\t}\r\n}\r\n\r\nvar counter:int = 0;\r\naddEventListener(Event.ENTER_FRAME, onLoop);\r\nfunction onLoop(evt:Event):void {\r\n\t var i:int;\r\n     canvas.lock();\r\n\t if (counter % 20 == 1){\r\n\t\tfor ( i= 0; i&lt;20; i++){\r\n\t\t\t drawShape(5+  i * 10, 10, shapes&#x5B;int(Math.random() * shapes.length)], Math.random()*0xFFFFFF);\r\n\t\t}\r\n\t }\r\n\t counter++;\r\n\t read = write.concat();\r\n\t for (i = 0; i&lt;size; i++){\r\n\t\t var curr:uint = read&#x5B;i];\r\n\t\t if (curr != 0xFF000000 &amp;&amp; curr != 0xFFFFFFFF){\r\n\t\t\tvar below:uint = read&#x5B;i + w];\r\n\t\t\tif (below == 0xFF000000 || below == curr){\r\n\t\t\t  var above:uint = read&#x5B;i - w];\r\n\t\t\t  if (above == 0xFF000000){\r\n\t\t\t\t write&#x5B;i] = 0xFF000000;\r\n\t\t\t  }\r\n\t\t\t  write&#x5B;i + w] = curr;\r\n\t\t\t}else{\r\n\t\t\t\tvar index:uint;\r\n\t\t\t\tif (int(Math.random()*2) == 1){\r\n\t\t\t\t\tindex = i + w - 1;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tindex = i + w + 1;\r\n\t\t\t\t}\r\n\t\t\t\tif (read&#x5B;index] == 0xFF000000){\r\n\t\t\t\t\twrite&#x5B;index] = curr;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t }\r\n\t }\r\n\t canvas.setVector(canvas.rect, write);\r\n\t canvas.unlock();\r\n}\r\n<\/pre>\n<p>Quickly thrown together sand cellular automata &#8211; with some tetris shapes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>stage.frameRate = 30; scaleX = scaleY = 2.5; var canvas:BitmapData = new BitmapData(200,200,false, 0x000000); addChild(new Bitmap(canvas)); var w:int = canvas.width; var size:int = canvas.width * canvas.height; var read:Vector.&lt;uint&gt; = new Vector.&lt;uint&gt;(size); var write:Vector.&lt;uint&gt; = new Vector.&lt;uint&gt;(size); read = canvas.getVector(canvas.rect); var loc:int = 199*w; for(var i:int = 0; i &lt;= 200; i++){ read&#x5B;loc+i]=0xFFFFFFFF; } write = [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,94,79],"tags":[3,14,4],"class_list":["post-308","post","type-post","status-publish","format-standard","hentry","category-bitmapdata","category-misc","category-vector","tag-actionscript","tag-as3","tag-flash"],"_links":{"self":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=308"}],"version-history":[{"count":0,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=\/wp\/v2\/posts\/308\/revisions"}],"wp:attachment":[{"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/actionsnippet.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}