0% ont trouvé ce document utile (0 vote)
13 vues3 pages

Cahier de Charges Robot Simulation

Le projet consiste à créer une application Python orientée objet pour simuler différents types de robots dans un environnement virtuel, en mettant en œuvre les principes de la POO : Encapsulation, Héritage et Polymorphisme. L'architecture comprend une classe de base Robot et trois sous-classes pour le nettoyage, la livraison et la sécurité, avec des méthodes spécifiques et un menu CLI pour interagir avec les robots. Des contraintes de codage et une évaluation basée sur des critères spécifiques sont également définies.

Transféré par

abdoelh204
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
13 vues3 pages

Cahier de Charges Robot Simulation

Le projet consiste à créer une application Python orientée objet pour simuler différents types de robots dans un environnement virtuel, en mettant en œuvre les principes de la POO : Encapsulation, Héritage et Polymorphisme. L'architecture comprend une classe de base Robot et trois sous-classes pour le nettoyage, la livraison et la sécurité, avec des méthodes spécifiques et un menu CLI pour interagir avec les robots. Des contraintes de codage et une évaluation basée sur des critères spécifiques sont également définies.

Transféré par

abdoelh204
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

Cahier des Charges – Robot Simulation

System
1. Objectif du Projet
Créer une application Python orientée objet qui simule différents types de robots dans un
environnement virtuel. Chaque robot doit avoir des comportements généraux (comme se
déplacer), mais aussi des comportements spécifiques (nettoyage, livraison, sécurité). Ce
projet doit démontrer clairement les trois principes majeurs de la POO : Encapsulation,
Héritage, Polymorphisme.

2. Architecture générale
L'application doit suivre une structure modulaire et propre :

robot_sim/
├── main.py ← Point d'entrée du programme (menu CLI)
├── robot.py ← Classe de base Robot
├── cleaning_robot.py ← Sous-classe : CleaningRobot
├── delivery_robot.py ← Sous-classe : DeliveryRobot
├── security_robot.py ← Sous-classe : SecurityRobot
├── utils.py ← (Optionnel) Fonctions d’aide (ex: log)
├── README.md

3. Spécifications Techniques

3.1 Classe Robot (classe de base)

Attributs :
- name (str)
- _battery_level (int privé, 0–100)
- _location (tuple privé (x, y))

Méthodes :
- move(x, y) : déplace le robot
- charge() : recharge la batterie
- status() : affiche la position + batterie (peut être redéfinie)
- Getters/setters pour la batterie et la position
Encapsulation via _battery_level et _location

3.2 Sous-classes (héritent de Robot)


✅ CleaningRobot

 - Méthode : clean() → consomme 10% batterie


- Redéfinit status() → affiche "mode nettoyage"

✅ DeliveryRobot

 - Attribut : cargo (booléen ou str)


- Méthode : deliver() → livre le colis, consomme 15%
- Redéfinit status()

✅ SecurityRobot

 - Méthode : patrol() → imprime une zone


- Méthode : scan_area() → simule des capteurs
- Redéfinit status()

3.3 Fichier main.py (Interface utilisateur)

- Liste de robots créés (Cleaning, Delivery, Security)


- Menu texte :
- Afficher le statut de chaque robot
- Déplacer un robot
- Utiliser son action spéciale (clean, deliver, etc.)
- Recharger le robot
- Quitter

Polymorphisme : faire robot.status() sur tous les types dans une boucle

4. Contraintes

- Utiliser POO (pas de programmation procédurale)


- Chaque classe dans un fichier séparé
- Fichiers bien nommés, propres, indentés
- Git : commits réguliers, version finale poussée sur GitHub
- Bonus : ajouter des logs ou sauvegarde dans un fichier JSON
5. Évaluation (Auto ou par autrui)

| Critère | Attendu |
|--------------------------|----------------------------------|
| Encapsulation | Attributs privés, méthodes d’accès |
| Héritage | Classe Robot + sous-classes |
| Polymorphisme | status() redéfini + utilisé en boucle |
| Structure modulaire | Un fichier par classe |
| Fonctionnalité CLI | Menu interactif dans main.py |
| Code clair et commenté | Oui |
| Git/GitHub | Repo avec commits significatifs |

6. Exemple de Résultat attendu

[1] CleaningBot | Battery: 80% | Location: (3, 4)


[2] DeliveryBot | Delivered cargo | Battery: 60% | Location: (0, 0)
[3] SecurityBot | Patroling sector 7 | Battery: 75%

Vous aimerez peut-être aussi