Trace d'un programme de behaviours
Bonjour tout le monde, je débute avec jade et là j'essaye de comprendre le fonctionnement des behaviours donc je me suis inspiré de l'exemple fourni avec la plateforme cependant je n'ai pas compris le résultat que j'ai obtenu si quelqu'un peut m'aider
voila le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| import jade.core.Agent;
import jade.core.behaviours.Behaviour;
import jade.core.behaviours.OneShotBehaviour;
import jade.core.behaviours.CyclicBehaviour;
public class comm extends Agent {
private int step = 1;
protected void setup() {
System.out.println("Agent "+getLocalName()+" started.");
CyclicBehaviour CyclicBehave=new CyclicBehaviour() {
public void action() {
switch (step) {
case 1: System.out.println("Cycle "+step);break;
case 2: System.out.println("Cycle "+step);break;
case 3:{
OneShotBehaviour OneShotBehave=new OneShotBehaviour() {
public void action() {
System.out.println("One shotttt " + step);
}
};
addBehaviour(OneShotBehave);break;}
}
step++;
}
};
addBehaviour(CyclicBehave);
}
public boolean done(){ return step==3;}
public int onEnd() {
doDelete();
return this.onEnd();
}
} |
et le résultat affiché
Code:
1 2 3 4
| ----------------
Cycle 1
Cycle 2
One shotttt 5 |
or d'apres ce que j'ai compris normalement le 3 case du switch ne devrait s'excuter vu que step =3 qui est la condition spécifiée dans la méthode done
et je n'arrive pas à comprendre d'ou vient le "5" dans ce cas :/
Salutations et merci d'avance