Gaelle Loosli

Projet d'algorithmique et de C++ - GMM2 2008 – par groupe de 4 à 5 personnes

Sujet : Le livre interactif dont vous êtes le héros (ou l'héroïne...)

Concept : Un livre dont on est le héros est constitué de paragraphes à lire dans un ordre qui dépend des choix du lecteur. Le lecteur, le héros, possède des caractéristiques (force, intelligence, volonté, astuce, ...) et un équipement (un téléphone, une épée, ...). Après avoir lu un paragraphe, il se voit proposer plusieurs options : soit il choisit par lui-même une des actions possibles (tourner à gauche ou à droite, ouvrir la boite ou non, ...), soit il doit relever un défi avec un tirage aléatoire comparé à ses caractéristiques (si le tirage donne 4 et que votre volonté n'est que de 3, vous perdez), soit il se trouve mélé à un combat (qui a des règles spécifiques simples) avec un ou plusieurs autres personnages (dits personnages non joueurs, qui ont leur propres caractéristiques utiles au combat ou au défi).

En fonction de son choix, de l'issue du défi ou du combat, est indiqué le paragraphe à lire ensuite.

En général, le but est d'accomplir une ou plusieurs quêtes. A la fin de la lecture, soit le héros a tout échoué (il est mort par exemple), soit il a réussit en partie ou complètement ses quètes (il peut avoir libéré la princesse mais pas trouvé son chat...).

Etapes du projet

Partie Algorithmique

  • Analyser le sujet afin d'enlever toute ambiguïté

  • Définir les TAD nécessaires

  • Faire la conception générale

  • Faire la conception détaillée

  • Produire un cahier des charges

Partie C++

  • A partir du cahier des charges, implémenter le projet en C++

  • Si il s'avère qu'il y a une erreur, une ambiguïté, ou un défaut quelconque dans le cahier des charges, proposer si possible une solution en la justifiant et en expliquant comment éviter de reproduire cette erreur

  • Documenter le code

  • Préparer une présentation du projet avec démonstration du produit fini.

Eléments requis

  • Le projet sera présenté avec une interface graphique en QT (spécifiée dans le cahier des charges)

  • Il est à votre charge de créer une histoire assez longue pour démontrer les possibilités de votre logiciel (mais pas un roman non plus...). Le sujet et les interactions sont à votre libre inspiration...

  • L'histoire doit être interchangeable sans recompilation du projet, via des fichiers textes structurés contenant toutes les informations utiles (on peut imaginer une structure de type XML qui décrit les paragraphes, les choix, les combats...)

  • La lecture doit pouvoir être interompue et reprise en l'état plus tard par un lecteur

  • Les caractéristiques du héros sont tirées au hasard au début d'une nouvelle lecture

  • Le lecteur a la possibilité de tricher en revenant sur ses pas...

Déroulement du projet et ce qu'il faut rendre

Le projet sera réalisé en partie en TD/TP et en partie chez vous (si votre travail est efficace en cours, il en restera peu en dehors...). A la fin de la partie Algo, chaque groupe rendra un petit rapport sur le déroulement du projet (qui a fait quoi, les difficultés,...) ainsi que 2 exemplaires reliés de son cahier des charges. Un servira à l'évaluation et l'autre sera redistribué à un autre groupe (de manière complètement arbitraire déterminée par moi-même). Chaque groupe fournira également à ce moment là les fichiers textes contenant les paragraphes de l'histoire et toute autre information utile correspondant à son cahier des charges et sensé être utilisable en l'état après implémentation du projet.

La partie C++ consistera à implémenter le projet d'un autre groupe (d'où la critique possible du cahier des charges...).

A la fin de la partie C++, chaque groupe rendra une archive contenant le code, la documentation, un petit rapport sur le déroulement de la seconde partie du projet (avec en particulier le « qui a fait quoi ») et tout ce qui vous semblera pertinent.

Evaluation

L'évaluation se fera à deux niveaux : collectif et individuel.

Partie Algo : la qualité de la conception, la pertinance des types de données, la précision globale du cahier des charge seront les principaux critères d'évaluation. Une partie de la note sera réservée jusqu'au rendu de la partie C++. Les critiques du groupe C++ seront prises en compte à ce moment là. L'évaluation individuelle se fera sur le partage « officiel » du travail (celui qui vous décrirez dans votre rapport) ainsi que sur l'implication constatée par l'enseignante dans le projet...

Partie C++ : Marche ou marche pas... ? Evidemment, un projet qui fonctionne sera mieux noté qu'un projet qui ne fonctionne pas. L'adéquation cachier des charges / réalistion sera une composante principale de la note.

Stratégie gagnant-gagnant

Un mauvais cachier des charges sera doublement pénalisé (à sa notation et au retour C++) et pénalisera aussi le groupe receveur (c'est injuste mais c'est comme ça...).

Un bon cahier des charges favorisera au contraire le groupe concepteur ET le groupe receveur, qui aura peu de difficultés à l'implémenter.

Comme vous ne savez pas de quel groupe vous hériterez (il n'est pas exclut que ce soit de vous même d'ailleurs...), tout le monde a intérêt à ce que la première partie soit bien réussie.

Moralité : lors du découpage des groupes, pensez à équilibrer le niveau.

Aspects d'organisation

Chaque groupe aura un chef de projet qui sera responsable de la communication avec l'enseignante, de l'organisation des rencontres de travail hors-cours et de la répartition des tâches (à noter que responsable ne veut pas dire unique décisionnaire...).

Il est recommandé par ailleurs d'avoir un responsable « délivrables » qui s'assure de la qualité et de la complétude des éléments rendus et un responsable pour chaque activité qui vous paraît importante (et cette organisation sera également décrite dans vos rapports).

Dates à retenir

5 décembre : rendu de la partie Algo (-2 points par jour de retard week-end compris)

7 janvier : présentation de projet et démo, rendu de la partie C++

Heures encadrées prévues

Algo : 6 scéances

C++ : 2 scéances


conception : PobRun