0% ont trouvé ce document utile (0 vote)
74 vues2 pages

Robots pollueurs et nettoyeurs en Java

Le document décrit un projet de programmation orientée objet en Java pour l'année universitaire 2023/2024, impliquant la création de classes représentant un monde virtuel peuplé de robots pollueurs et nettoyeurs. Les spécifications incluent la définition de classes pour le monde, les robots pollueurs (tout droit et sauteurs) et les robots nettoyeurs (haut de gamme et distraits), avec des méthodes pour gérer la pollution et le nettoyage des cases. Les étudiants doivent implémenter des fonctionnalités spécifiques pour chaque type de robot et gérer les interactions avec le monde virtuel.

Transféré par

Abdel Moghit
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)
74 vues2 pages

Robots pollueurs et nettoyeurs en Java

Le document décrit un projet de programmation orientée objet en Java pour l'année universitaire 2023/2024, impliquant la création de classes représentant un monde virtuel peuplé de robots pollueurs et nettoyeurs. Les spécifications incluent la définition de classes pour le monde, les robots pollueurs (tout droit et sauteurs) et les robots nettoyeurs (haut de gamme et distraits), avec des méthodes pour gérer la pollution et le nettoyage des cases. Les étudiants doivent implémenter des fonctionnalités spécifiques pour chaque type de robot et gérer les interactions avec le monde virtuel.

Transféré par

Abdel Moghit
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

Année universitaire : 2023 / 2024

Programmation Orienté Objet : JAVA


Licence d’excellence (01/02/2024)

Contrôle de fin de semestre POO : Langage Java (durée 1h30)

Dans un monde virtuel en deux dimensions évoluent des robots. Il existe plusieurs sortes de
robots : des robots pollueurs et des robots nettoyeurs. Les robots pollueurs se baladent dans le
monde virtuel et ils déposent des déchets sur chacune des cases qu’ils parcourent. Il existe
deux modèles de robots de ce type : des robots sauteurs et des robots qui vont tout droit. Les
robots nettoyeurs, quant à eux, ne supportent pas la vue de déchets et l’enlèvent dès qu’ils
passent sur une case sale. Là encore, il existe deux sortes de robots nettoyeurs, fabriqués par
deux entreprises différentes : des robots "haut de gamme" et des robots distraits. Les premiers
parcourent l’ensemble des cases du monde pour le nettoyer alors que les seconds ne nettoient
qu’un déchet sur deux. En prenant en considération les exceptions qui peuvent être soulevé
par une méthode :

1. Ecrire la classe Monde qui contient les données et les méthodes suivantes :
 le nombre de lignes nbL, le nombre de colonnes nbC et un tableau de booléen
bidimensionnel tab de nbL lignes et nbC colonnes (vrai signifiant que la case est "sale") ;
 un constructeur ayant deux paramètres et initialisant un monde sans déchet ;
 public String toString(), retournant l’état du monde. On représentera une case sale par le
caractère "V" et une case propre par le caractère "F" ;
 public void pollue(int i, int j), qui place un déchet sur la case de coordonnées (i,j) ;
 public void nettoie(int i, int j), qui nettoie la case (i,j) ;
 public boolean estSale(int i, int j), qui renvoie vrai si la case (i,j) est sale et faux sinon.
2. Ecrire la classe Robot abstraite qui contient les données et les méthodes suivantes :
 posX, posY : les coordonnées du robot dans le monde ;
 monMonde : qui contient le monde dans lequel peut évoluer le robot (type Monde) ;
 un constructeur ayant pour paramètres des coordonnées i et j, ainsi qu’un monde, qui crée
un robot à la position (i,j) dans le monde donné en paramètre ;
 un constructeur ayant un paramétré monde qui crée un robot avec une position aléatoire, il
doit appeler l’autre constructeur;
 public void vaEn(int i, int j), qui déplace le robot dans la case (i,j) ;
3. Ecrire la classe PollueurToutDroit qui dérive de la classe Robot contenant la donnée
colDepart, numéro de la colonne de départ du robot et les méthodes suivantes :
 Constructeurs.
 La méthode public void parcourir() pour un robot pollueur tout droit : un tel robot
parcourt une colonne intégralement en positionnant un déchet sur chacune des cases

1/2
visitée. Le point de départ est en (0, colDepart) et s’arrête dans la dernières case de la
colonne.
4. Ecrire la classe PollueurSauteur qui dérive de la classe Robot contenant la donnée
membre: deltax, qui représente la valeur du saut et les méthodes suivantes :
 Constructeurs.
 public void parcourir() pour un robot pollueur sauteur: le départ est en case (0,0) puis il
saute de façon analogue au cavalier des Echecs et va en (1,deltax), puis en (2,2*deltax)
puis en (3,3*deltax)...Chaque case visitée est polluée. Si la colonne sort de l’échiquier, on
revient au début. Par exemple la colonne nbC qui n’existe pas sera transformée en nbC
modulo nbC.
5. Ecrire la classe Nettoyeur qui dérive de la classe Robot. Elle contient les méthodes:
 public void nettoyer(), qui nettoie la case sur lequel se trouve ce robot ;
 Constructeurs,
 public void parcourir() pour un robot nettoyeur: il parcourt l’ensemble des cases du
tableau en "boustrophédon" en partant de la case (0,0).
6. Ecrire la classe NettoyeurDistrait qui dérive de la classe Nettoyeur et contient les
méthodes :
 Constructeurs
 public void parcourir() pour un robot nettoyeur distrait: il parcourt l’ensemble des cases
du tableau en "boustrophédon" en partant de la case (0,0) mais cette fois-ci en ne
nettoyant qu’une case sale sur deux.

2/2

Vous aimerez peut-être aussi