Idée de travailler avec des états

Après toutes les recherches que nous avons fait jusqu’à maintenant, nous avons déterminé trois algorithmes, c.-à-d. trois différentes actions que les robots font :

  • Le kilobot ne se déplace pas et il attend un message avec son ID pour commencer à se déplacer (ce n’est pas son tour). Appelons cet état de kilobot ATTENTE ;
  • Le kilobot cherche la direction dans laquelle il faut se déplacer. Un esclave cherche à se deplacer dans la direction qui l’amène vers le leader, et le leader cherche une direction aléatoire. Appelons cet état de kilobot POSITIONNEMENT ;
  • Le kilobot est bien positionné et il se déplace. Appelons cet état de kilobot DEPLACEMENT ;

Nous avons trois sous-algorithmes différents et dans le code source pour chaque kilobot il y a un emplacement pour mettre le programme utilisateur unique. Nous devons donc trouver une solution pour faire le kilobot exécuter un sous-algorithme différent dans des différentes parties de l’exécution. Rappelons que quand on programme les kilobots on ne donne pas une exécution complète, mais on précise qu’est-ce que le kilobot fait tous les « je ne sais pas exactement combiens » millisecondes.

Voici une solution pour pouvoir faire le kilobot exécuter un sous-algorithme différent dans des différentes parties de l’exécution :

Nous allons avoir une variable globale où nous allons stocker l’état du kilobot. Variable entier ETAT.

ETAT=1 – correspond à l’état ATTENTE

ETAT=2 – correspond à l’état POSITIONNEMENT

ETAT=3 – correspond à l’état DEPLACEMENT

Le programme principal va alors vérifier à quel état est le kilobot pour décider quel sous-algorithme il faut exécuter.

Nous envisageons à rajouter l’état NUMEROTATION, mais nous laissons l’écriture de cet algorithme pour la fin parce que nous avons une autre solution pour la numérotation.

Les trois algorithmes :

ATTENTE
POSITIONNEMENT
DEPLACEMENT

Cet article a été publié dans Non classé. Ajoutez ce permalien à vos favoris.

Laisser un commentaire