public void Teste()
        {
            AstarPlanner Planner = new AstarPlanner();

            Planner.Actions.Add(new KillAction());
            Planner.Actions.Add(new BeProtectedAction());
            Planner.Actions.Add(new BeArmedAction());
            Planner.Actions.Add(new GoToAction("lugar0", "lugar1", 2));
            Planner.Actions.Add(new GoToAction("lugar1", "lugar2", 2));
            Planner.Actions.Add(new GoToAction("lugar2", "lugar1", 2));
            Planner.Actions.Add(new GoToAction("lugar1", "lugar0", 2));


            WorldState TestWorldState = new WorldState();

            TestWorldState.SetSymbol(new WorldSymbol("Armed", false));
            TestWorldState.SetSymbol(new WorldSymbol("Place", "lugar0"));
            TestWorldState.SetSymbol(new WorldSymbol("Protected", false));
            TestWorldState.SetSymbol(new WorldSymbol("EnemyKilled", false));

            PlanSet PlanSet = Planner.CreatePlan(
                TestWorldState,
                new TesteGoal()
                );

            System.Diagnostics.Debug.Assert(PlanSet != null);
        }
Beispiel #2
0
        public PlanSet GetPlan(Goal goal, List <PloobsEngine.IA.Action> Actions)
        {
            AstarPlanner Planner = new AstarPlanner();

            Planner.MaxIteration = int.MaxValue;
            Planner.Actions      = Actions;
            WorldState WorldState = BlackBoard.GetEntry <WorldState>("WorldState");

            PlanSet PlanSet = Planner.CreatePlan(
                WorldState,
                goal
                );

            return(PlanSet);
        }
Beispiel #3
0
        public void teste()
        {
            BlackBoard BlackBoard = new PloobsEngine.IA.BlackBoard();
            WorldState WorldState = new PloobsEngine.IA.WorldState();

            WorldState.SetSymbolValue <int>("gold", 5);
            WorldState.SetSymbolValue <int>("wood", 5);
            WorldState.SetSymbolValue <int>("castle", 0);
            WorldState.SetSymbolValue <int>("warrior", 0);
            WorldState.SetSymbolValue <bool>("attack", false);
            BlackBoard.SetEntry <WorldState>("WorldState", WorldState);

            Dictionary <string, int> resneeded = new Dictionary <string, int>();

            resneeded.Add("gold", 10);

            Dictionary <string, int> resneeded2 = new Dictionary <string, int>();

            resneeded2.Add("wood", 2);
            resneeded2.Add("gold", 2);

            Dictionary <string, int> unitneeded = new Dictionary <string, int>();

            unitneeded.Add("warrior", 3);

            List <PloobsEngine.IA.Action> actions = new List <PloobsEngine.IA.Action>();

            actions.Add(new GatherResource("gold", 5));
            actions.Add(new GatherResource("wood", 5));
            actions.Add(new Build(resneeded, "castle", 1));
            actions.Add(new MakeUnit("warrior", "castle", resneeded2));
            actions.Add(new Patrol());
            actions.Add(new Attack(unitneeded));

            GoalPlanning GoalPlanning = new GoalPlanning(BlackBoard);
            PlanSet      PlanSet      = GoalPlanning.GetPlan(new GoalAttack(), actions);

            System.Diagnostics.Debug.Assert(PlanSet != null);

            foreach (var item in PlanSet.Actions)
            {
                Console.WriteLine(item.Name);
            }
        }