Beispiel #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);
        }
Beispiel #2
0
 public static void __hx_ctor__BattleMain(global::BattleMain __hx_this, string mapPath)
 {
     unchecked {
         global::haxe.Log.trace.__hx_invoke2_o(default(double), mapPath, default(double), new global::haxe.lang.DynamicObject(new int[] { 302979532, 1547539107, 1648581351 }, new object[] { "new", "BattleMain", "BattleMain.hx" }, new int[] { 1981972957 }, new double[] { ((double)(29)) }));
         global::game.Game           game1    = new global::game.Game();
         object                      map      = new global::haxe.format.JsonParser(((string)(global::sys.io.File.getContent(mapPath)))).parseRec();
         global::eval.Evaluter       evaluter = new global::eval.Evaluter(((global::Array <double>)(global::eval.Evaluter.MS_TABLE)));
         global::search.BeamSearcher sercher  = new global::search.BeamSearcher(0.1, evaluter);
         game1.setupMap(map);
         game1.setupPunters(global::BattleMain.PUNTERS);
         {
             int _g1 = 0;
             int _g  = game1.riverCount;
             while ((_g1 < _g))
             {
                 int    i      = _g1++;
                 int    punter = global::game._PunterId.PunterId_Impl_._new((i % global::BattleMain.PUNTERS));
                 object move   = sercher.getMove(game1, punter);
                 game1.addMove(move);
                 global::haxe.Log.trace.__hx_invoke2_o(default(double), global::haxe.lang.Runtime.concat("move", global::haxe.lang.Runtime.toString(i)), default(double), new global::haxe.lang.DynamicObject(new int[] { 302979532, 1547539107, 1648581351 }, new object[] { "new", "BattleMain", "BattleMain.hx" }, new int[] { 1981972957 }, new double[] { ((double)(42)) }));
             }
         }
     }
 }