LABORATOIRE #2 - Le lièvre et les tortues
Transcription
LABORATOIRE #2 - Le lièvre et les tortues
LABORATOIRE #2 - Le lièvre et les tortues Données du laboratoire Vous devez recréer la course classique entre le lièvre et deux tortues. Les concurrents commencent la course à la "case #1" sur une distance qui peut être précisée par l’utilisateur (70 cases par défaut). Chaque case représente une position possible tout au long de la course. La ligne d'arrivée se situe à la dernière case. Le premier concurrent qui atteint ou dépasse la dernière case remporte un seau rempli de laitue et de carottes fraîches. La course se déroule sur la pente ascendante d'une montagne glissante; les concurrents peuvent donc occasionnellement perdre du terrain. Spécifications Ce projet sera réalisé selon une approche objet. Il y aura donc une classe « Application » responsable de générer la course et des classes pour chaque type de participants. Au début de la course on demande à l’utilisateur s’il veut préciser la distance du trajet (2 à 75) et le nom des participants. Par défaut, la distance est de 70 et les noms T, t, L. On utilise la production de nombres aléatoires pour développer une simulation de cet événement. À chaque cycle d’un temps donné (pause d’environ une seconde), le programme ajuste la position des animaux en fonction des règles suivantes: Animal Type de mouvement Tortue Marche pénible rapide Glissade Marche pénible lente Sommeil Grand saut Grande glissade Petit saut Petite glissade Lièvre Pourcentage du temps 50 % 20 % 30 % 20 % 20 % 10 % 30 % 20 % Mouvement réel 3 cases vers la droite 6 cases vers la gauche 1 case vers la droite Aucun mouvement 9 cases vers la droite 12 cases vers la gauche 1 case vers la droite 2 cases vers la gauche On génère les pourcentages inscrits au tableau précédent en produisant un entier aléatoire à l'intérieur de l'échelle 1 à 10. Une tortue effectue une «marche pénible rapide» lorsque l’entier est entre 1 et 5, une glissade lorsqu’il vaut 6 ou 7, ou une «marche pénible lente» s’il est entre 8 et 10. On utilise une technique similaire pour les mouvements du lièvre. Le programme utilise des variables pour suivre la position respective des animaux (c'està-dire les numéros de position variant entre 1 et la dernière case). Les trois animaux doivent débuter à la position #1 (c'est-à-dire à la "grille de départ"). Si un animal glisse vers la gauche avant la case #1, l'animal est replacé sur la case #1. On commence la course en affichant: LES PARTICIPANTS SONT : …… nom et dossard : Rosa, dossard T Anatole, dossard t Roméo, dossard L LA COURSE A UNE DISTANCE DE : ……. Laboratoire#2-LievreTortues.doc Programmation par objets Page 1 Attention! BANG !!!!! ILS SONT PARTIS !!!!! Pour chaque cycle, (c'est-à-dire à chaque répétition de la boucle), on affiche une ligne de X positions pour chaque participant, puis la lettre « T » indiquant la position de la première tortue, lettre « t » indiquant la position de la seconde tortue et la lettre « L » indiquant la position du lièvre. À l'occasion, une tortue et un lièvre sont sur la même case. À ce moment, la tortue mord le lièvre et le programme doit afficher sur la ligne du lièvre AÏE! en commençant à cette position. Toutes les positions affichées autres que le T, t le L ou le AÏE! (pour les cas d'égalité) doivent consister en des espaces vides. Entre chaque cycle, on doit tester si l'un ou l'autre des animaux a atteint ou dépassé la case finale. Si tel est le cas, le nom du ou des gagnants est affiché et la simulation est terminée. - Selon le gagnant, on affiche • La Tortue (le nom de la tortue) gagne! • Le lièvre (le nom du lièvre) gagne! - Si deux ou trois animaux gagnent au même cycle de l'horloge, affichez Course nulle. Lorsque la simulation est terminée, l’utilisateur a le choix d’en reprendre une nouvelle. Date de remise : lundi 20 février 1. Remettre les diagrammes de classes. 2. Remettre le pseudo-code des méthodes de la classe « Lievre » et la ou les méthodes de la classe « Course » qui effectuent la simulation (postionnement et évaluation) 3. Remettre le fichier de l’application (projet) sur le réseau dans le répertoire créé au numéro du laboratoire. 4. Remettre une impression de chaque fichier (chaque impression est brochée séparément) 5. Les documents sont remis dans une chemise 6. Les documents sont placés dans l’ordre suivant : 1. Diagrammes des classes 2. Pseudo-codes 3. Le code de l’application 4. Le code des classes 7. Ne pas oublier : - le nom des variables doit être significatif le code doit être commenté adéquatement et possédé une entête complète : Exemple : dans menuFact.java – voir Semaine#3 Note : Le premier test aura lieu le jeudi 23 février. Précisions sur le format et le contenu, à venir. Laboratoire#2-LievreTortues.doc Programmation par objets Page 2