Une version minimale du jeu, mal programmée, permettant d'aller dans les 4 directions
sera construite au début.
Au fur et à mesure de votre avancement,
plusieurs versions de ce projet
vous seront fournies pour vous montrer
la mise en oeuvre de certaines techniques.
Vous ne pourrez pas simplement copier/coller le code
car ces versions n'illustrent généralement qu'un seul point
et ne reprennent pas toutes les améliorations déjà apportées à votre jeu.
L'image de gauche ci-dessus montre une version non graphique du jeu
sur laquelle nous travaillerons jusqu'à l'exercice 18.5.
La qualité de programmation sera progressivement améliorée
pour être mieux en mesure d'ajouter des fonctionnalités intéressantes
dans la partie suivante.
On commencera par permettre l'ajout de nouvelles directions
et deux commandes simples.
L'image de droite ci-dessus montre une version graphique du jeu
sur laquelle nous travaillerons à partir de l'exercice 18.6.
Il sera bien sûr possible de développer optionnellement
une IHM (Interface Homme-Machine) plus sophistiquée.
Le cahier des charges sera progressivement développé pour intégrer :
- de nouvelles directions (up, down, et pourquoi pas NE, SE, SO, NO),
- de nouvelles commandes (eat, look, back, test, take/drop, inventory, charge/fire, open/close, talk, ...),
- un puis des objets dans chaque pièce,
- des objets spéciaux (magic cookie, beamer, ...)
- des pièces spéciales (avec une trap door, transporter room, ...),
- au moins un bouton à cliquer (et pourquoi pas des menus, des onglets, des dialogues, des icônes, ...),
- des fonctionnalités (revenir une fois puis plusieurs fois sur ses pas, se téléporter,
tester automatiquement le bon fonctionnement, porter des objets ramassés dans les pièces, ...),
- une limite de déplacements (ou de commandes ou de temps),
- des personnages (PNJ) dont certains se déplacent (avec dialogues et/ou énigmes et/ou combats et/ou ...), etc.
La programmation java nécessaire pour implémenter tous ces ajouts est OBLIGATOIRE,
mais elle peut être "habillée" différemment pour mieux coller à votre scénario.
Certaines possibilités ci-dessus peuvent d'ailleurs ne servir à rien dans votre scénario,
mais elles doivent être testables.
Tous ces ajouts seront entrecoupés d'améliorations de la programmation
(qui consistent souvent à reprogrammer "en mieux" une partie qui fonctionne déjà)
vous permettant d'apprendre de nouveaux concepts et de nouvelles techniques en Java.