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); }
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))))); }
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))); }
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>(); }