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