Open FlorentMouysset opened 10 years ago
Comment savoir que le rangement est terminé ?
L'environnement ne peut pas indiquer à un robot s'il reste une ressource à prendre (les robots sont autonomes). Les robots ne peuvent pas indiquer à un autre robot qu'il n'y a plus de ressource (pas de communication)
Donc : il faut que le robot le découvre par lui-même
==> A coder dans percevoir (tour de l'entrepot) / décider (se suicider) / agir (se détruire et notifier l'environnement)
ok @dam4256. Par contre comment le notifier à l'environnement ? -> Ajouter une méthode dans "IEnvironnementActions" du genre "robotIsDeadAtPosition(Position position)" ? ou bien (+ simple) -> Un "moveRobot" sur une position en dehors de l'entrepôt (ex:-1 -1)?
Quand est-t-il des autres questions : la suppression et l'ajout de robot ?
"Comment ajouter des robots ?" Une nouvelle synthèse de ce problème est faite dans #7 .
La modification du couloirs impose de tuer des robots. Comment le faire ? Je propose une méthode très simple :
Comment ajouter des robots ? Proposition : Ajouter une interface provide à écosystème avec une méthode "addRobot(nbNewRobot)". Ce service est, alors, exporté par le warehouse pour être visible de la GUI.
Comment savoir que le rangement est terminé ? Proposition : Cela est plus compliqué ... L’écosystème Robots pourrait proposer une méthode qui indique si des agents robot travails ou pas. -Il faut donc un état dans les robots. Les robots sont dans l'état "finish" quand ils ne trouvent plus de ressources dans la zone pull.