Envoyé par
chtig
Première chose : je rajouterais un long prochainDeplacement dans un client qui représente le temps restant avant le prochain déplacement.
Ensuite je ferai un objet GestionnaireDeplacement qui a en attribut la collection des clients.
A la construction de cet objet (en fait dans le set de la collection clients) je chercherais le plus petit prochainDeplacement , que je garderais en attribut prochainTic et je lancerais un Timer qui déclenche la méthode faireDeplacement au bout de prochainDeplacement millisecondes.
Dans cet objet, j'aurais une methode genre faireDeplacement qui ferait :
- Je parcours la collection pour enlever prochainTic à tous les prochainDeplacement
- Si prochainDeplacement vaut alors 0, je bouge le client en question et calcule au hasard un nouveau prochainDeplacement
- Pendant ce parcours, je garde en mémoire le nouveau plusPetitProchainDeplacement.
A la fin du parcours, je mets ce plusPetitProchainDeplacement en attribut, notifi un objet Observer chargé d'annoncer la nouvelle situation et lance un nouveau Timer du même ordre que le premier qui déclenchera la methode faireDeplacement au bout de plusPetitProchainDeplacement millisecondes.
Ca te va ?
Partager