Deux séances pour ce TD
Nous allons dans ce TD nous intéresser à un exemple un peu plus complexe de classes fortement liées les unes aux autres. Attention, vous devez modéliser ce problème, l'implémenter et le tester. Vous pouvez choisir de commencer par implémenter, mais nous vous le déconseillons vivement… Le problème parait simple, mais l'est-il vraiment?
A la fin de cette feuille, vous avez quelques éléments utiles au niveau du code
On désire gérer des processus.
Un processus se définit par un suite d'étapes.
Un modèle de processus se définit comme une suite de modèles d'étapes. Un modèle d'étape est défini par un intitulé par exemple “Aller dans le jardin magique”, un temps prévu par exemple “3s”. Le temps moyen prévu par un processus est la somme des temps prévus par chacun des modèles d'étapes.
A partir d'un modèle de processus on crée un processus. A partir d'un modèle d'étape on crée un étape.
Afficher une étape revient à afficher l'intitulé du modèle d'étape qui lui est associé. On peut comparer le temps réalisé par une étape avec le temps prévu. On peut comparer le temps réalisé par un processus avec le temps prévu par son modèle.
On peut savoir parmi les processus correspondant à un modèle celui qui a fait le meilleur temps, c'est pour cela que nous associons le nom d'une personne à un processus.
Organisez vous comme bon vous semble pour modéliser, implémenter et tester l'ensemble de cette application!
Surtout pensez aux tests unitaires, ils sont essentiels ici.
Voici un exemple de traces correspondant à un test de validation (pas à un test unitaire!)
Voici votre défi Aller dans le jardin Magique en 5000s Trouver le trésor du Dragon en 5000s Tuer le dragon en 5000s Ramener le tresor au chateau des Neiges en 5000s A vous de jouer Aller dans le jardin Magique==> Taper quand fini 4081.0/5000 Trouver le trésor du Dragon==> Taper quand fini 478.0/5000 Tuer le dragon==> Taper quand fini 570.0/5000 Voici votre temps : 5129 -->5129 Meilleur temps :5129 Voulez-vous rejouer Y/N Y A vous de jouer Aller dans le jardin Magique==> Taper quand fini 1652.0/5000 Trouver le trésor du Dragon==> Taper quand fini 580.0/5000 Tuer le dragon==> Taper quand fini 1447.0/5000 Voici votre temps : 3679 -->5129 -->3679 Meilleur temps :3679 Voulez-vous rejouer Y/N Y A vous de jouer Aller dans le jardin Magique==> Taper quand fini 698.0/5000 Trouver le trésor du Dragon==> Taper quand fini 851.0/5000 Tuer le dragon==> Taper quand fini 992.0/5000 Voici votre temps : 2541 -->5129 -->3679 -->2541 Meilleur temps :2541 Voulez-vous rejouer Y/N
Pour obtenir le temps en java :
//Pour avoir le temps courant long endTime = System.currentTimeMillis(); //Faire la différence entre deux temps! long tempsCourant = (endTime - startTime);
public void testTempsProcessus() throws InterruptedException { long nbDeMilliSecondes = 100; .... // Attendre Thread.sleep(nbDeMilliSecondes);
Pour capturer une string au clavier
Scanner s = new Scanner(System.in); String str = s.nextLine();