0% ont trouvé ce document utile (0 vote)
17 vues8 pages

Robot de sauvetage en environnement hostile

tp de programmation java partie 3

Transféré par

nignanalexgael
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues8 pages

Robot de sauvetage en environnement hostile

tp de programmation java partie 3

Transféré par

nignanalexgael
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

M.

NAGALO ISGE-BF 2020-2021

Un robot d’intervention pour le sauvetage des personnes en


environnement hostile

Enoncé du problème

Votre mission consiste à réaliser une opération de sauvetage dans un bâtiment de taille 10*10
composé de deux salles. Chaque salle est délimitée par des murs et dispose d’une seule porte
d’entrée située sur le mur vertical. Le robot se trouve à la position (0,0). La victime est placée
aléatoirement dans l’une des salles 1 ou 2.
L’objectif de votre mission est de sauver la victime. Pour cela, le robot devra être en mesure
d’atteindre la victime, afficher son état, revenir à la position initiale pour afficher le matériel
médical nécessaire (voir tableau ci-dessous) et retourner à la victime afin de lui porter secours.
La mission se fera en plusieurs étapes :
1. Le robot explore les salles 1 et 2 pour trouver la victime et afficher son état. Lors de
cette phase d’exploration la position de la porte de chaque salle est mémorisée.
2. Le robot utilise ensuite cette information pour retourner à la position initiale. Il doit
alors sauvegarder son itinéraire en considérant les conventions suivantes : « 1 désigne
la fonction avancer(), 2 désigne la fonction tournerDroite(), 3 désigne la fonction
tournerGauche(), 4 désigne la fonction reculer() ».
3. Le robot devra ensuite retourner auprès de la victime en utilisant l’itinéraire sauvegardé
et afficher à la console l’outil adéquat.

Etat victime Outil nécessaire


Saignement Trousse de soins
Asphyxie Masque d’oxygénation artificielle
Fracture Matelas immobilisateur
Arrêt cardiaque Défibrillateur

Page 1 sur 8
Variante 2
Pour évaluer l’efficacité de l’opération de sauvetage du robot, on considère le même scénario
précédent mais cette fois-ci avec quatre salles.
M. NAGALO ISGE-BF 2020-2021

Objectifs d’apprentissage
1. A la fin de ce problème, chacun d’entre vous sera en mesure d’utiliser la notion des
ArrayList (déclaration, parcours, initialisation, manipulation) dans un programme
2. A la fin de ce problème, chacun d’entre vous sera en mesure d'argumenter du choix
d'une structure parmi : tableau, ArrayList.

Objectifs du groupe
Chacun d’entre vous aura démontré sa capacité à travailler en groupe :
1. Pour répondre à des questions relatives aux ArrayList
2. Pour aider les membres du groupe qui ont des difficultés dans leur apprentissage

Calendrier
Timing de la séance Aller [55 mn]
Étapes Durée Activités / Tâches

1 5’ Organiser les groupes : distribuer les rôles (cf. « les rôles »)

2 5’ Prendre connaissance des documents fournis


3 30’ Comprendre et clarifier le problème
1. Quel est au juste le problème ? Produisez-en une formulation synthétique.

2. Clarifier les incertitudes

3. De quelles informations disposez-vous?

4. Quelles sont les questions relatives au problème auxquelles vous devrez trouver des
réponses?

5. Quels livrables devrez-vous produire?

6. Quelles sont vos pistes pour la résolution du problème?


4 15’ Formulez les objectifs d’apprentissage et établir un plan d’actions pour la
séance de travail individuel:
a) Une liste de livrables à produire

b) Une liste de tâches à accomplir (lecture, exercices, algorithmes…)

c) Qu’est-ce que chacun d’entre vous doit apprendre?

A la fin de la séance le secrétaire se charge de communiquer à l’équipe avec


copie au tuteur la synthèse de la production et le plan d’action.

Travail individuel
Le temps de travail individuel, hors séance et en séance doit être consacré à l’apprentissage
des notions mises en jeu dans le problème en cours.

Page 3 sur 8
Timing de la séance retour [55 mn]
Étapes Durée Activités / Tâches

1 5’ Répartition des rôles

2 5’ Fournir au tuteur les programmes produits au format papier et la grille


d’évaluation remplie au préalable
3 20’ Réaliser individuellement l’exercice proposé par le tuteur
4 10’ Un volontaire écrit la solution du groupe au tableau.
Cette proposition est ensuite commentée par le groupe.
5 10’ Vérifier que vous connaissez les réponses aux « questions auxquelles
chacun doit être capable de répondre »
6 5’ Le secrétaire fournit au tuteur au moins une question pour le cours de
restructuration

Les ressources
Liste des ressources utiles

Type de ressource Disponibilité


L’énoncé du problème 3 ENT
Livre «Le livre de JAVA premier langage » Bibliothèque
Support de cours « Apprenez à programmer en Java », C. Herby Site OpenClassrooms
Diapositives de cours ENT
Exercices ENT
Javadoc_ArrayList Web
[Link]
M. NAGALO ISGE-BF 2019-2020

Le code du robot
/** Programme principal avec la méthode main
*@author ISGE-BF
*@version 2.1
*/
public class SimulateurAppX {
public static void main(String[] args) {
//création de l'environnement et récupération du terrain
Terrain t = [Link](10, 10);
// création du robot
Robot robot =new Robot(0, 0,"sud");
//ajout du robot sur le terrain
[Link](robot);
//ajout des deux salles
[Link]();
//ajout des quatre salles(utile pour la variante2)
//[Link]();

//ajout victime dans l'une des deux salles


[Link]();
//ajout victime dans l'une des quatre salles(utile pour la variante2)
//[Link]();

// met à jour les composants graphiques


[Link]();
//ajouter ici le code de déplacement du robot
}
}

Les questions auxquelles chacun doit être en mesure de répondre


Cette partie contient des exemples de questions que vous pourriez vous poser après avoir lu les sections du
livre recommandées pour ce problème.
• Quelle est la différence entre un objet de type tableau et un objet de type Arraylist ?
• Comment peut-on créer en java un objet de type Arraylist ?
• Comment peut-on en java parcourir un objet de type Arraylist ?
• Comment peut-on ajouter un élément à un objet de type Arraylist ?
• Comment peut-on supprimer un élément d’un objet de type Arraylist ?
• Comment peut-on modifier un élément d’un objet de type Arraylist ?
Les rôles
Les 4 rôles spécifiques (qui peuvent éventuellement être combinés par un
même membre)

Animateur Scribe
• S’assure que l’équipe suit les étapes prévues ▪ Note au tableau l’essentiel des
échanges (support et mémoire de la
• Anime les rencontres et la discussion: discussion de l’équipe)
◦ distribue la parole, suscite/sollicite la ▪ Résume et fait la synthèse des
participation ou modère les interventions informations pour aider l’animateur
◦ amène l’équipe à clarifier les idées développées ▪ Organise le tableau en fonction des
étapes (de manière à garder la trace de
◦ réalise des synthèses
toute la réflexion→ ne pas effacer).
• Crée un climat où tous sont invités à participer
◦ S’assure que tout le monde a la chance de
s’exprimer
◦ Motive les silencieux à faire valoir leurs idées et
opinions.
Gestionnaire du temps Secrétaire
Pour alléger la tâche de l’animateur, un gestionnaire
du temps peut être désigné pour : ▪ Garde une trace écrite et complète des
documents et de la production de l’équipe
▪ S’assurer du respect du timing pour chaque
étape et du timing général ▪ Transmet cette trace à tous les membres
de l’équipe et au tuteur.
▪ Informer l’équipe régulièrement (ex : il nous
reste 30 minutes pour cette séance)
▪ S’assurer que le travail progresse et que
l’équipe n’accumule pas de retard

Le tuteur
• Ne fait pas partie de l’équipe d’apprenants
• Guide l’équipe : l’empêche de s’égarer, l’incite à aller plus loin, …
• N’est pas là pour donner un cours
• Connaît la réponse au problème, mais c’est à vous, étudiants, de faire le travail. Vous ne serez donc
pas étonnés qu’il refuse parfois de répondre directement aux questions que vous vous posez. Ce sera
le cas notamment s’il estime que cette question n’a pas été débattue préalablement au sein de l’équipe.

Document à rendre
La classe principale à déposer sur ENT selon le chronogramme défini.
M. NAGALO ISGE-BF 2019-2020

Annexes
i. Extrait de la javadoc du robot
avancer
public int avancer()
permet d'avancer le robot droit devant lui
Returns:
1 si le robot a pu avancer
reculer
public int reculer()
Permet de faire reculer le robot
Returns:
1 si le robot a pu reculer
tournerDroite
public int tournerDroite()
Permet de faire pivoter le robot sur sa droite
Returns:
1 si le robot a pu tourner correctement
tournerGauche
public int tournerGauche()
Permet de faire pivoter le robot sur sa gauche
Returns:
1 si le robot a pu tourner correctement
isObstacleDevant
public boolean isObstacleDevant()
Permet de savoir si la case de devant est un obstacle
Returns:
true si la case de devant est un obstacle
isSurVictime
public boolean isSurVictime()
Permet de savoir si le robot se trouve sur une case victime
Returns:
true si le robot se trouve sur une case victime
getEtatVictime
public String getEtatVictime()
Permet de connaître l’état de la victime
Returns:
Une chaîne de caractères décrivant l’état de la victime (``saignement’’, ``asphyxie’’,
``fracture’’, ``arret cardiaque’’)
ii. Grille d'évaluation
Critères Niveaux de qualité
Déterminer et déclarer des variables ++ + - --

Réaliser un affichage à l'écran et une saisie clavier ++ + - --


Structures de test
++ + - --

Les structures « if – else » sont opérationnelles et répondent au


besoin

Les structures de tests sont bien choisies (if – else vs switch)

Structures de répétition
++ + - --
Les structures de répétition sont bien choisies (parmi les 3
possibles)

L’indice de la boucle est déclaré lors de


l’initialisation dans le for

Présenter un programme de manière lisible ++ + - --


Le cartouche est présent et répond aux consignes
Les standards de présentation java sont respectés (accolades,
indentation…)

Le code du programme est commenté


Appliquer la syntaxe du langage java ++ + - --
Le code témoigne d'une bonne utilisation du langage java

Déclaration et utilisation des ArrayList ++ + - --


L’ArrayList est déclaré de manière appropriée : syntaxe correcte

L’ArrayList est alloué avant utilisation (new)


L’ArrayList est bien utilisé : le parcours de l’ArrayList et l’accès à
ses éléments sont corrects

++ Les critères sont parfaitement respectés


+ Les critères sont globalement respectés
- La plupart des critères ne sont pas respectés
-- Les critères ne sont pas du tout respectés

Vous aimerez peut-être aussi