flash on 2010-11-3

by enecre
♥0 | Line 58 | Modified 2010-11-03 19:00:26 | MIT License
play

ActionScript3 source code

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

package {
    import flash.text.TextField;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        
        private var tf:TextField = new TextField();
        public function FlashTest() {
            // write as3 code here..
            tf.width = tf.height = 465;
            addChild(tf);
            var tehai:Array = [0,0,9,9,18,18,27,27,29,32,31,31,32];
            var tehai34:Vector.<int> = to34(tehai);
            tr(tehai34);
            tr(chiitoi(tehai34));
        }
        
        private function to34(tehai:Array):Vector.<int> {
            var retVec:Vector.<int> = new Vector.<int>(34);
            var l:int = tehai.length;
            for (var i:int = 0; i < l; i++) {
                retVec[tehai[i]] += 1;
            }
            return retVec;
        }
        
        private function tr(...o:Array):void{
            tf.appendText(o + "\n");
            tf.scrollV = tf.maxScrollV;
        }
        
        private function chiitoi(t/*ehai34*/:Vector.<int>):int {
            var syanten:int = 7;
            var koritsu:Boolean = false;
            for (var i:int; i < 34; i++) {
                if (t[i] >= 2) syanten--;
                else if(!koritsu && t[i] == 1){
                    syanten--;
                    koritsu = true;                    
                }
            }
            return syanten;
        }

        
        private function kokushi(t/*ehai34*/:Vector.<int>):int {
            var syanten:int = 13;
            var atama:Boolean = false;
            var scan:Array = [0,8,9,17,18,26,27,28,29,30,31,32,33];
            for (var i:int = 0; i < 13; i++) {
                if (atama == false && t[scan[i]] >= 2) {
                    syanten -= 2;
                    atama = true;
                    tr("対子");
                }
                else if (t[scan[i]] != 0) {
                    syanten -= 1;
                    tr("1枚");
                }
            }
            return syanten;
        }
    }
}