Projet Java

Le projet de Java a pour but de développer, en binômes, une plate-forme de simulation à temps discret (pas à pas). Le programme réalisé devra simuler une opération de surveillance d'une carte par un ensemble de robots autonomes (ou drones). Des intrus seront également présents sur la carte afin de dérober des sources d'argent. Les drones doivent attraper les intrus, les intrus doivent attraper les sources d'argent puis fuir par les sorties de la carte. La simulation se termine lorsque plus aucun intrus n'est sur la carte, soit parce qu'ils ont été attrapés par les drones, soit parce qu'ils ont réussi à s'enfuir par une sortie.

Ce projet devra être développé en dehors des heures de TP, mais 4 séances d'encadrement ont été prévues pour vous aider en cas de difficultés. Bien sûr toutes les connaissances vues en cours, TD et TP sont nécessaires au bon déroulement du projet.

A l'issue de ce projet, seront notés l'avancement dans le développement du projet, mais également l'originalité des solutions, des architectures, des algorithmes proposés, ainsi que la qualité et la lisibilité du code produit.

projet.png

Dans le sujet du projet vous est proposé un processus de développement. Voici une proposition de découpage des séances de projets pour mettre en oeuvre ce processus. Ce n'est qu'une proposition qui dépend de votre propre appropriation du projet et de votre vitesse de développement. Le travail entre les séances est fortement encouragé.

Dates importantes

  • Publication du sujet : 20/03/2014
  • Séance n°1 : 15/05/2014
  • Séance n°2 : 22/05/2014
  • Séance n°3 : 5/06/2014
  • Séance n°4 : 18/06/2014
  • Livraison : 25/06/2013

Téléchargements

  • Le sujet du projet [pdf]
  • La librairie graphique [jar]
  • La javadoc de la librairie graphique [html]

Première séance : démarrer le projet

Tâche 0a : Lecture du sujet

La première chose à faire et de prendre connaissance du sujet du projet.

Tâche 0b : Création du projet Eclipse

Créez un projet Eclipse nommé projet-<premier login>-<deuxième login>.

Tâche 0c : Importation de la bibliothèque fournie

Ensuite, pour bien démarrer votre projet créez un package fr.emse.simulator. Vous aurez besoin d'une librairie fournie pour le projet. Cette librairie est fournie sous le format .jar (Java Archive) : simulation.jar. Copiez la dans votre répertoire personnel, puis importez la :

  • Créer un dossier lib dans la racine du projet Eclipse
  • Copier le jar dans le dossier lib
  • Ouvrir les propriétés du projet ("Project->Properties"), aller à la rubrique "Java Build Path" et dans l'onglet "Librairies".
  • Cliquer sur "Add JARs…" pour lier un fichier se trouvant dans le workspace Eclipse.
  • Choisir le fichier simulation.jar, puis valider.

Tâche 0d : Lecture de la documentation de la librairie

Consultez la documentation de la librairie (générée avec javadoc). De plus un jar est une archive (comme un zip) pouvant contenir plus que les .class des classes fournies. Notamment, les sources, la documentation, des exécutables, des images, etc. Vous pouvez explorer le contenu de cette archive pour vous en faire une idée.

Tâche 1 : Analyser le problème

Ce travail correspond à ce que vous avez commencé en séance de TD et à la première tâche proposée dans le sujet du projet. Vous devez identifier les classes à implémenter sans forcément avoir identifié tous les attributs et méthodes.

Deuxième séance : Mettre en place l'interpréteur

Tâche 2 : Pré-coder les classes

Ce travail correspond à la tâche 2 du sujet du projet. Commencez par créer des classes vides sous Eclipse. Vous ajouterez du contenu (attributs ou méthodes) au fur et à mesure que les besoins apparaîtrons.

Tâche 3 : Coder l’interpréteur

Ce travail correspond à la tâche 3 du sujet du projet. Commencez par mettre en place une boucle de lecture de votre fichier de paramètre, créez le monde à la bonne taille avec les bonnes cellules, puis créez les entités.

Troisième séance : Mettre en place le mécanisme de simulation

Tâche 4 : Coder le simulateur

Ce travail correspond à la tâche 4 du sujet du projet. En implémentant l'interface Simulator, fournie dans la librairie simulation.jar, mettez en place la boucle de simulation faisant agir toutes les entités. Dans un premier temps, les entités peuvent agir "aléatoirement". Les comportements évolués seront développés dans la tâche suivante.

Quatrième séance : Mettre en place le comportement des entités et de l'environnement

Tâche 5 : Coder le comportement du terrain et des entités

Ce travail correspond à la tâche 5 du sujet du projet. Maintenant que la simulation peut être lancée, il faut ajouter les comportements aux entités (déplacement, action, etc.). Vous pouvez par exemple commencer par les voleurs, puis continuer avec les drones.

Dernière séance : Finalisation et livraison du projet

Tâche 6 : Terminer le développement

Si vous avez pris du retard sur le développement, il est temps de le rattraper. Sinon, vous pouvez également améliorer le comportement de vos entités.

Tâche 7 : Livrer le projet

Instructions

Le projet est prévu pour être terminé en fin de quatrième séance. Envoyez le source des classes (.java) ainsi que les classes compilées (.class) dans une archive zip (voir les instructions du TP1b et veiller à bien ajouter les sources !) à Gauthier Picard à la fin, avec comme sujet [LCPOO] Projet <nom1> <nom2>. Le nom du projet doit être projet-<nom1>-<nom2>.

L'absence d'envoi sera sanctionnée dans la note finale.


Gauthier Picard