Beispiel #1
0
        //Execute l'action du robot et le signal à l'environnement
        public static void executeAction(SimpleActionType action, Position robot)
        {
            Thread.Sleep(1000 / SpeedFactor);
            switch (action)
            {
            case SimpleActionType.PICK:
                pickDiamond(robot.x, robot.y);
                break;

            case SimpleActionType.VACUUM:
                vacuumDust(robot.x, robot.y);
                break;

            case SimpleActionType.TOP:
                MainWindow.environment.addEvent("MOVE:NORTH");
                break;

            case SimpleActionType.BOTTOM:
                MainWindow.environment.addEvent("MOVE:SOUTH");
                break;

            case SimpleActionType.LEFT:
                MainWindow.environment.addEvent("MOVE:WEST");
                break;

            case SimpleActionType.RIGHT:
                MainWindow.environment.addEvent("MOVE:EAST");
                break;
            }
        }
Beispiel #2
0
        private void act()
        {
            bool needsToStop = false;
            int  countAction = 0;

            //Permet d'effectuer autant de mouvement que prévu par l'apprentissage
            while (intention.Count != 0 && !needsToStop)
            {
                countAction++;
                if (countAction == bestFreqExploration)
                {
                    needsToStop = true;
                }


                SimpleActionType a = intention.Dequeue();
                Effectors.executeAction(a, belief.robotPos);
            }
        }