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

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

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

// 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;
			}
		}
    }
}