In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Cellular automaton rule90

こんどはルール90。
 始点は1つにしたほうがきれいなので変えました。
Get Adobe Flash player
by shamr0ck 16 Sep 2009
    Embed
/**
 * Copyright shamr0ck ( http://wonderfl.net/user/shamr0ck )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/eZeH
 */

// こんどはルール90。
// 始点は1つにしたほうがきれいなので変えました。

package {
    import flash.display.Sprite;
    import flash.display.BitmapData;
    import flash.display.Bitmap;
    public class FlashTest extends Sprite {
        
        private var offColor:uint = 0x00cccc;
        private var onColor:uint = 0xFFFFFF;
        private var bmpData:BitmapData = new BitmapData(500, 500, false, offColor);
        private var bmp:Bitmap = new Bitmap(bmpData);
        
        public function FlashTest() {
            // write as3 code here..
                addChild(bmp);
                this.firstDrawHandler();
        }
        
        private function firstDrawHandler():void{
            /*for(var i:int = 0; i < bmpData.width; i++){
                var n:int = Math.random() * 2;
                if(n == 0){
                    bmpData.setPixel(i, 0, onColor);
                }
            }*/
            bmpData.setPixel(250, 0, onColor);
            drawHandler();
        }
        
        private function drawHandler():void{
            // 01011010
            for(var t:int = 1; t < bmpData.height; t++){
                for(var j:int = 0; j < bmpData.width; j++){
                    if(bmpData.getPixel(j-1,t-1) == onColor){
                        //100 101 110 111
                        if(bmpData.getPixel(j,t-1) == onColor){
                            // 110 111
                            if(bmpData.getPixel(j+1,t-1) == onColor){
                                // 111
                                bmpData.setPixel(j,t, offColor); 
                            }else if(bmpData.getPixel(j+1,t-1) == offColor){
                                // 110
                                bmpData.setPixel(j,t, onColor);
                            }
                        }else if(bmpData.getPixel(j,t-1) == offColor){
                            // 100 101
                            if(bmpData.getPixel(j+1,t-1) == onColor){
                                // 101
                                bmpData.setPixel(j,t, offColor);
                                //continue;
                            }else if(bmpData.getPixel(j+1,t-1) == offColor){
                                // 100
                                bmpData.setPixel(j,t, onColor);
                            }
                        }
                    }else if(bmpData.getPixel(j-1,t-1) == offColor){
                        // 000 001 010 011
                        if(bmpData.getPixel(j,t-1) == offColor){
                            // 000 001
                            if(bmpData.getPixel(j+1,t-1) == offColor){
                                // 000
                                bmpData.setPixel(j,t, offColor);
                            }else if(bmpData.getPixel(j+1,t-1) == onColor){
                                // 001
                                bmpData.setPixel(j,t, onColor);
                            }
                        }else if(bmpData.getPixel(j,t-1) == onColor){
                            // 010 011
                            if(bmpData.getPixel(j+1,t-1) == offColor){
                                // 010
                                bmpData.setPixel(j,t, offColor);
                                //continue;
                            }else if(bmpData.getPixel(j+1,t-1) == onColor){
                                // 011
                                bmpData.setPixel(j,t, onColor);
                            }
                        }
                    }
                }
            }
        }
    }
}