Resp: Jacques Ferber,
Récupérez le dernier code de Warlogo ici....
Définir un mécanisme d'actions collectives, dans lequel les explorateurs envoient des messages soit à la base soit aux lanceurs de missiles, pour leur dire d'attaquer la base. Vous pouvez imaginer toutes les solutions possibles..
Voici comment utiliser les messages dans Warlogo (on en trouvera un exemple
to action-si-message let msg [] let performatif [] let contenu [] let emetteur [] while [not empty? incoming-queue] [set msg get-message set performatif get-performative msg set contenu get-content msg set emetteur get-sender msg ;; faire l'action que l'on désire à partir du performatif du message et son contenu ;; attention le "sender" est codé dans le message comme un nombre correspondant à la tortue... d'où le "turtle" devant le msg.. ] end
Comme vous le verrez dans le code du lanceur de missile de l'équipe T2, les explorateurs envoient un message aux lanceurs de missile d'aller vers l'endroit où ils se trouvent dès qu'ils voient la base.. Mais cela n'est pas efficace:
Développez une tactique de défense de la base... Cela suppose que certains lanceurs de missiles restent près de la base pendant que d'autres vont attaquer.. Pour cela la base va recruter un certain nombre de défenseurs de missiles.. Les n premiers qui répondent à la demande..
Pour cela vous aller implémenter le réseau contractuel qui est présenté dans
le cours, et dont voici le diagramme UML:

C'est la base qui va initialiser le protocole.. Les lanceurs de missiles recrutés restent près de la base, les autres vont attaquer.
Lorsque vous créez de nouveau lanceurs de missiles ils peuvent devenir soit des défenseurs soit des attaquants.
Maintenant on désire qu'un explorateur particulier lance une attaque avec p lanceurs de missiles. C'est lui qui va devenir le leader du recrutement de ces lanceurs de missile. Il ne lancera son opération que s'il a recruté au moins p lanceurs de missiles. Pour cela il faut aussi qu'il sache où se trouve la base!!.. Cette information peut lui être apportée par un autre explorateur.
Comme il voit plus loin que les lanceurs de missiles, il peut guider les lanceurs de missiles pour réaliser cette opération (rappelez vous vos cours de trigonométrie :-) )
Eventuellement, on pourrait avoir plusieurs explorateurs qui deviennent leaders de plusieurs groupes créés ainsi..