Skip to topic | Skip to bottom
Home
Minfo
Minfo.GlPrj1314r1.6 - 06 Nov 2013 - 16:00 - PhilippeCollettopic end

Start of topic | Skip to actions

Projet 1 GL (2013-2014)

Philippe Collet et Simon Urli

Introduction

Le projet est à réaliser par équipe de 4.

Toute ambiguïté que vous pourrez trouver dans ce sujet devra être résolu en posant des hypothèses de travail raisonnables et documentées.

ALERT! le point de départ du projet est la fin du TD 5 avec l'inclusion du chargement dynamique dans le simulateur. Une correction est fournie ici: GlTD5y1314

Date de remise du projet pour le lundi 25 novembre 2013, 23h59 au plus tard

Un mail devra être envoyé à Philippe POINT Collet AT unice POINT fr, avec le rappel des membres de l'équipe et un lien vers un site de téléchargement.

Fonctionnalités attendues

Le projet consiste à réaliser une simulation interactive d'un écosystème de créatures. Deux types de créatures seront présentes dans votre simulation :

  • des plantes,
  • des herbivores.

Les plantes apparaissent spontanément lors du démarrage de la simulation, leur nombre étant déterminé :

  • soit par pourcentage sur la base de la taille du terrain,
  • soit par choix utilisateur au démarrage,
  • soit de manière aléatoire.
Les plantes peuvent également être placées par l'utilisateur au cours de la simulation. Ces créatures disposent d'un niveau de vie permettant de déterminer si elles sont toujours vivantes ou non :
  • ce niveau de vie correspond au nombre de graines qu'elles contiennent et détermine leur taille d'affichage.
  • les herbivores vont diminuer le niveau des plantes en les consommant.

Enfin, les plantes vont évoluer au cours du temps en suivant des règles similaires au jeu de la vie de Conway :

  • si une plante a exactement 2 plantes aux alentours, elle conserve son état ;
  • si elle a moins de 2 plantes alentours ou plus de 3 elle perd de la vie ;
  • et enfin si une plante a exactement 3 plantes alentours elle change légèrement de position.

Les herbivores sont des créatures qui se déplacent en troupeau. Lorsqu'une créature est environnée d'un nombre trop important de créatures il y a une chance non négligeable qu'il tente d'échapper au troupeau. Les herbivores lorsqu'ils rencontrent des plantes s'arrêtent pour manger pour une durée aléatoire. Lorsqu'ils mangent les herbivores emportent des graines avec eux qu'ils peuvent lâcher de manière aléatoire dans l'environnement, créant de nouvelles plantes. Lorsque les herbivores ne mangent pas, ils perdent progressivement de la vie. Ils peuvent aller jusqu'à mourir. De même, il existe une chance non négligeable lorsqu'un troupeau d'herbivores est arrêté pour manger, qu'un herbivore naisse.

En cours de simulation, un panneau doit afficher un certain nombre d'information sur le déroulement de la simulation (nombre de plantes, nombre de naissances, etc.). C'est à vous de déterminer les bons paramètres pour rendre la simulation cohérente (vous pouvez aussi paramétrer la simulation en fournissant des champs pour saisir certaines informations, comme le nombre de plantes, etc.).

Architecture et tests

Dans l'ensemble du projet, vous devez faire une utilisation raisonnée des patrons de conception :

  • organiser les comportements des plantes et herbivores pour être modulables, y compris dynamiquement. On doit par exemple être capable d'expérimenter plusieurs manières de se comporter pour les différentes créatures (en chargeant de nouveau plugin de comportement, voire en les composant par un comportement qui aggrège plusieurs autres comportements). Ces plugins seraient alors des variantes de la manière dont les herbivores se comportent. Par exemple, les grandes possibilités sont :
    • pour les herbivores, de favoriser la nourriture ou de favoriser les naissances,
    • pour les plantes, de favoriser l'esseimage avec beaucoup de graines (mais une taille importante) ou la longévité en étant moins grande.
  • s'assurer que la création des différents types de créature peut être faite dynamiquement tout en assurant la consistance de l'ensemble (les herbivores et les plantes doivent se connaitre pour interagir et implémenter les fonctionnalités demandées).

L'ensemble des nouvelles fonctionnalités (plantes, herbivores, etc.) doit être testé unitairement. Il faut plus d'un test par élément de comportement.

Distribution attendue

Archive de l'application

Elle se composera au minimum de :

  1. Un répertoire src avec les sources
  2. Un répertoire test avec les tests,
  3. Un fichier jar pour le simulateur
  4. Un répertoire plugins avec à l'intérieur les plugins (classes ou jar suivant ce que vous arrivez à faire)
  5. fichier README pour expliquer vos choix de conception, vos résultats et surtout comment tester votre application (préparer des répertoires avec des .class déjà compilés, à placer, des scripts pour effectuer des scénarios de chargement/rechargement, idéalement en maven (voir bonus)).

  • Bonus: compilation/testing/packaging automatisé avec gestion des dépendances maven (junit et mockito) : + 2 points

Liste des équipes

  • Baglio Michaël, Roumajon Steven, Oliva David, Durando Jimmy
  • Kraria Yoann, Mouline Ludovic , Nesmes Jeremy , Palmieri Anthony
  • Charlélie BOUVIER, Mickael KUENY, Alexia LLORENS, Gerald ROCHER
  • Huneau Romain, Germond Florian, Nivot Stephane, Brouchet Lionel
  • AYADI Marwene, BEN ABDELJELIL Mohamed, MAGROUN Hamza, OLIVER Donovan, RASAMIZANANY Kune
  • Lea Aviva Elbeze, Jean-Charles Gastaud, Eric Otto, Adam Palma
  • AUK Jimmy, GAZZOTTI Raphael, WENZINGER Quentin, BRUNEL Emmanuel
  • BAH Abdoulaye Binta, BENATHMANE Ayoub, MAAROUFI KARIM, Dhouib Molka, trabelsi khaoula
  • PORTA Benjamin, BATICLE Clément, MAROUA Hamidou, IHMAD Lahcen

-- PhilippeCollet - 06 Nov 2013
to top


You are here: Minfo > GlPrj1314

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback