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

forked from: 意味が分からないw マップみたいな

/**
 * Copyright bradsedito ( http://wonderfl.net/user/bradsedito )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/3VUe
 */

// forked from coppieee's 意味が分からないw マップみたいな
// forked from nitoyon's 意味が分からないw AS3
// forked from 9re's forked from: 意味が分からないw
// forked from paq's 意味が分からないw
package {
    import flash.display.Sprite;
    import flash.utils.setInterval;
    public class FlashTest extends Sprite {
        public function FlashTest(  ) {
            init(10, 10, 4)
            (右)(R )(右)(右)(右)(R )(右)(右)(右)(R )(下)(ENTER)
            (U )(左)(左)(左)(L )(左)(左)(左)(L )(左)(左)(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(右)(右)(右)(右)( R)(右)(下)(  )(  )(  )(ENTER)
            (  )(上)(  )(  )(  )(  )(  )(下)(  )(  )(  )(ENTER)
            (  )(上)(  )(  )(  )(  )(  )(D )(  )(  )(  )(ENTER)
            (  )(上)(  )(  )(  )(  )(  )(下)(  )(  )(  )(ENTER)
            (  )(上)(  )(  )(下)(左)(左)(左)(  )(  )(  )(ENTER)
            (  )(上)(  )(  )(下)(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(上)(  )(  )(下)(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(上)(  )(  )(下)(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(上)(左)(左)(L )(  )(R )(右)(右)(右)(下)(ENTER)
            (  )(  )(  )(  )(  )(  )(上)(  )(  )(  )(下)(ENTER)
            (  )(  )(  )(  )(  )(  )(上)(  )(  )(  )(下)(ENTER)
            (  )(  )(  )(  )(  )(  )(上)(  )(  )(  )(下)(ENTER)
            (  )(  )(  )(  )(  )(  )(上)(  )(  )(  )(下)(ENTER)
            (  )(  )(  )(  )(  )(  )(上)(  )(  )(  )(下)(ENTER)
            (  )(  )(  )(  )(  )(  )(上)(左)(左)(L )(左)(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(ENTER)
            (  )(  )(  )(  )(  )(  )(  )(  )(  )(  )(  )
        }
        private const 右:uint = 1;
        private const 左:uint = 2;
        private const 上:uint = 4;
        private const 下:uint = 8;
        private const 石:uint = 0x10;
        private const R:uint = 石 | 右;
        private const L:uint = 石 | 左;
        private const U:uint = 石 | 上;
        private const D:uint = 石 | 下;
        
        private const ENTER:uint = 0x20;
        
        private function init($width:int, $height:int, $margin:int):Function {
            var xs:Array = [[]];
            var row:int = 0;
            var column:int = 0;
            function draw(r:int, c:int, color:uint=0xcccccc):void {
                graphics.beginFill(color);
                graphics.drawRect(c * ($width + $margin), r * ($width + $margin), $width, $height);
                graphics.endFill();
            }
            
            return function(x:uint = 0):Function {
                if ((x & ENTER) != 0) {
                    
                    row ++;
                    column = 0;
                    xs.push([]);
                    return arguments.callee;
                }
                xs[row][column] = x;
                if ((x & 石) != 0) {
                    (function():void {
                        var ro:uint = row;
                        var co:uint = column;
                        setInterval(function():void {
                            var current:uint = xs[ro][co];
                            draw(ro, co);
                            if ((current & 右) != 0) {
                                co++;
                            }else if ((current & 左)!=0) {
                                co--;
                            }else if ((current & 上) != 0) {
                                ro --;
                            }else if ((current & 下) != 0) {
                                ro++;
                            }
                            draw(ro, co, 0xff);
                    }, 300); } )();
                    
                    draw(row, column, 0xff);
                }else {
                    draw(row, column);
                }
                
                column++;
                return arguments.callee;
            }
        }
    }
}