Esempio n. 1
0
        public virtual object getMove(global::game.Game game, int punter)
        {
            global::Array <object> livingRivers = game.getLivingRivers();
            global::Array <object> moves        = new global::Array <object>(new object[] {});
            {
                int _g = 0;
                while ((_g < livingRivers.length))
                {
                    global::game.River river = ((global::game.River)(livingRivers[_g]));
                    ++_g;
                    object __temp_stmt3 = null;
                    {
                        object __temp_odecl1 = new global::haxe.lang.DynamicObject(new int[] {}, new object[] {}, new int[] { 116192081, 842117339, 1860705976 }, new double[] { ((double)(river.b)), ((double)(river.a)), ((double)(punter)) });
                        __temp_stmt3 = new global::haxe.lang.DynamicObject(new int[] { 1213755260 }, new object[] { __temp_odecl1 }, new int[] {}, new double[] {});
                    }

                    moves.push(new global::search.MoveAndScore(((object)(__temp_stmt3))));
                }
            }

            object __temp_stmt4 = null;

            {
                object __temp_odecl2 = new global::haxe.lang.DynamicObject(new int[] {}, new object[] {}, new int[] { 1860705976 }, new double[] { ((double)(punter)) });
                __temp_stmt4 = new global::haxe.lang.DynamicObject(new int[] { 1246880977 }, new object[] { __temp_odecl2 }, new int[] {}, new double[] {});
            }

            moves.push(new global::search.MoveAndScore(((object)(__temp_stmt4))));
            {
                int _g1 = 0;
                while ((_g1 < moves.length))
                {
                    global::search.MoveAndScore move = ((global::search.MoveAndScore)(moves[_g1]));
                    ++_g1;
                    game.addMove(move.move);
                    move.score = this.evaluter.eval(game);
                    game.undoMove();
                }
            }

            int id = punter;

            moves.sort(new global::search.BeamSearcher_getMove_45__Fun(id));
            return(((global::search.MoveAndScore)(moves[0])).move);
        }
Esempio n. 2
0
 public static int compare(int id, global::search.MoveAndScore a, global::search.MoveAndScore b)
 {
     return(global::Reflect.compare <double>(((double)(b.score.getFor(id))), ((double)(a.score.getFor(id)))));
 }
Esempio n. 3
0
 public override double __hx_invoke2_f(double __fn_float1, object __fn_dyn1, double __fn_float2, object __fn_dyn2)
 {
     global::search.MoveAndScore b = (((__fn_dyn2 == global::haxe.lang.Runtime.undefined)) ? (((global::search.MoveAndScore)(((object)(__fn_float2))))) : (((global::search.MoveAndScore)(__fn_dyn2))));
     global::search.MoveAndScore a = (((__fn_dyn1 == global::haxe.lang.Runtime.undefined)) ? (((global::search.MoveAndScore)(((object)(__fn_float1))))) : (((global::search.MoveAndScore)(__fn_dyn1))));
     return((double)(global::search.MoveAndScore.compare(this.id, a, b)));
 }
Esempio n. 4
0
 public static void __hx_ctor_search_MoveAndScore(global::search.MoveAndScore __hx_this, object move)
 {
     __hx_this.move   = move;
     __hx_this.score  = null;
     __hx_this.scores = new global::haxe.ds.IntMap <int>();
 }