ひとり三目並べ

by takuya1021
練習で三目並べを作っている途中です。
そのうち対Comを実装したい…
♥0 | Line 74 | Modified 2009-11-30 23:02:12 | MIT License
play

ActionScript3 source code

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

 //練習で三目並べを作っている途中です。
 //そのうち対Comを実装したい…
package { 
    import flash.display.Sprite; 
    import flash.events.MouseEvent; 
    import flash.display.StageScaleMode; 
    import flash.text.TextField;  
    
    [SWF(width="400",height="400",backgroundColor="#f0f0f0")] 
    public class test extends Sprite { 
        public function test() { 
            // write as3 code here.. 
            var table:Array = [[0,0,0],[0,0,0],[0,0,0]];
            var x:int;
            var y:int;
            var turn:int = 1;

            for(var i:int = 0; i<4;i++) {
                graphics.beginFill(0x008000); 
                graphics.drawRect(i*60,0,10,190);
                graphics.endFill(); 
            }
            for(i = 0; i<4;i++) {
                graphics.beginFill(0x008000); 
                graphics.drawRect(0,i*60,180,10);
                graphics.endFill(); 
            }
                  
            var tf:TextField = new TextField();

            stage.addEventListener( MouseEvent.MOUSE_DOWN, function(e :MouseEvent) :void { 
                x=Math.floor((mouseX-5)/60);
                y=Math.floor((mouseY-5)/60);

                if((x>=0) && (x<=2) && (y>=0) && (y<=2) && (table[y][x] == 0)){
    
                    table[y][x] = turn;
                    if(turn == 1){
                        graphics.lineStyle( 6, 0xEA0000 ); 
                        graphics.drawCircle(x*60+35,y*60+35,20);
                    } else if(turn == -1){
                        graphics.lineStyle( 6, 0x0000EA );
                        graphics.moveTo(x*60+20,y*60+20);
                        graphics.lineTo(x*60+50,y*60+50);
                        graphics.moveTo(x*60+50,y*60+20);
                        graphics.lineTo(x*60+20,y*60+50);
                    }
                    turn *=-1;


                tf.text = "x=" + x + "  y=" + y + "\n"; 
                for(i=0;i<3;i++){
                    for(var j:int=0;j<3;j++){
                        tf.appendText(table[i][j]);
                    }
                    tf.appendText("\n");
                }
                tf.appendText(f(table)+"\n");
                  addChild(tf);

                if(f(table)!=0){
                    tf.text = (f(table)==1?"maru":"batu") + " win!"
                    addChild(tf);
                }


                }
            }); 

        } 


        private function f(table:Array):int{

            for(var i:int = 0;i<3;i++) {
                if ((table[i][0] == table[i][1]) && (table[i][0] == table[i][2]) && table[i][0]!=0){
                    return table[i][0];
                } 
                if ((table[0][i] == table[1][i]) && (table[0][i] == table[2][i]) && table[0][i]!=0){
                    return table[0][i];
                } 
            }
            if ((table[0][0] == table[1][1]) && (table[0][0] == table[2][2]) && table[0][0]!=0){
                return table[0][0];
            } 
            if ((table[0][2] == table[1][1]) && (table[0][2] == table[2][0]) && table[0][2]!=0){
                return table[0][2];
            } 

            return 0;
        }
    } 
}