Vous êtes sur la page 1sur 1

Travaux Pratiques n°2

Conception et Programmation Orienté-Objets


- TP1 - II2 A, E & F

LA DATE LIMITE DE REMISE EST REPORTEE POUR LE MERCREDI 25/11/09 à 23:59


IL EST FORTEMENT CONSEILLE DE FAIRE LE TP AVANT LE DS

Le but de ce travail consiste à implémenter en partie le TD n°3. En fait, l’objectif est de


développer une application permettant de faire calculer à un robot des itinéraires dans une zone
géographique de taille 50 colonnes x 50 lignes. Un robot calcule un itinéraire lors de son
déplacement dans la zone géographique où il se trouve. Chaque zone géographique dispose d’un
certain nombre d’obstacles dont le nombre et la position de chaque obstacle sont connus à
l’avance et fixes.

Description des fonctionnalités


Il s’agit d'offrir à un utilisateur la possibilité de faire plusieurs fois l’une des 6 commandes
suivantes :
1. Donner la position d’un robot dans la zone géographique. N’oubliez pas de vérifier la
validité de la position. (la position ∈ [0..49]x[0..49] et ≠ d’un obstacle).
2. Saisir la position de la sortie. N’oubliez pas de vérifier la validité de la position.
(identique à la validité du robot).
3. Afficher la zone géographique. Il s’agit d’afficher tous les éléments de la zone. Une case
vide sera affiché par le symbole ‘.’. Un obstacle sera affiché par le symbole ‘*’. Le
Robot sera affiché par le symbole ‘X’. La sortie sera affichée par le symbole ‘O’.
4. Calculer un itinéraire. En fait, il s’agit de demander au robot d’atteindre la sortie.
5. Afficher l’itinéraire s’il est calculé. Il s’agit d’afficher la succession des positions des
cases visitées du robot, depuis sa position initiale jusqu’à la position de sortie. Chaque
position est affichée comme suit : (n°colonne, n°ligne).
6. Quitter.

Instructions de conception :
• Respectez le maximum possible votre solution du TD n°3.
• Les obstacles sont chargés à partir d’un fichier dénommé obstacle.txt structuré comme
suit : le nombre d’obstacles (nb) suivi de (2 * nb) entiers séparés par un espace. Chaque
couple d’entiers représente la position (n°colonne, n°ligne) d’un obstacle. A titre
d’exemple le fichier comportant les 5 entiers : 2 50 50 10 10, représente 2 obstacles l’un
à la position (50,50) et l’autre à la position (10,10).
• Proposer une implémentation de la méthode « prochaineCaseAVisiter() » comme suit :
o La méthode « prochaineCaseAVisiter() » retourne initialement le sens sud
o Si le robot se rend compte, lors d’un déplacement effectif vers le sens proposé par
la méthode « prochaineCaseAVisiter() », qu’il y a un obstacle ou une sortie
de la zone géographique, il tourne de 90° dans le sens opposé d’une aiguille de
montre et cette méthode retournera la prochaine fois le nouveau sens.

Travail à remettre
• Créer dans le workspace « live office » un répertoire intitulé TP2.
• Déposer un fichier intitulé Robot.txt comportant la fusion de tous le contenu de vos
fichiers ‘.h’ et fichiers ‘.cpp’. N’oubliez pas de séparer ces contenus par un commentaire
indiquant le nom du fichier d’origine.

YJ/IBH CPOO/TP2 Page 1/1

Vous aimerez peut-être aussi