Note
|
Complétez les informations ci-dessous.
|
L’objet de ce mini-projet est de développer un jeu d’exploration de donjon de type Rogue-like. Le thème que vous utiliserez pour ce projet est libre. Vous devrez cependant respecter les contraintes fonctionnelles et techniques mentionnées ci-dessous.
Important
|
Vous respecterez les contraintes suivantes:
|
-
L’univers du jeu est représenté par un ensemble de cases carrées représentant différents éléments (sol, mur, objet, personnage, …).
-
L’univers du jeu est généré aléatoirement en début de partie.
-
Le jeu permet de déplacer un Personnage Joueur (PJ) en mode tour par tour.
-
Le jeu comporte également des Personnages Non Joueur (PNJ).
-
Le PJ possède des caractéristiques (points de vie, de magie, …) et un équipement (pièces de monnaie, armes, …).
-
Le PJ peut interagir avec son environnement (ramasser ou utiliser un objet, discuter avec un PNJ, combattre un monstre, …).
-
Les PNJ obéissent aux mêmes règles que le PJ mais sont contrôlés par le jeu.
-
L’interface proposera une visualisation de l’univers en mode texte (une case est représentée par un caractère symbole).
-
Les actions du joueur seront saisies au clavier sous la forme
<action> <objet>
(par exempleramasser clé
). -
Une interface textuelle spécifique pourra être proposée pour des situations particulières (création du personnage, sélection d’un sort, discussion, …).
-
L’état de la partie devra pouvoir être sauvegardée et rechargée à tout moment.
-
Article Wikipedia Rogue-like
-
Tutoriels : roguelike tutorial, Writing a roguelike in Java
-
Quelques bibliothèques : JAnsi (couleur dans un terminal), JLine (gestion des saisies)
Vous êtes un personnage (@) qui évolue dans un donjon rempli de zombies verts (Z). À chaque niveau vous devez atteindre la porte bleue (D) pour accéder au niveau suivant. Le chemin pour y arriver est parsemé de zombies et de pièces d’or. Vous devez récolter le plus de pièces d’or possible tout en évitant les zombies. Il y a 14 niveaux, et à chaque niveau les zombies sont plus nombreux.
Le PJ est une arobase et donne son nom au jeu. Il possède 3 vies non renouvelables pendant les 14 niveaux. Chaque collision avec un zombie lui retire une vie.
Les PNJ sont des zombies statiques qui retirent une vie au PJ lorsqu’il les percute. Un zombie est tué lorsqu’il est percuté par le PJ.
Direction : touches directionnelles
Quitter le jeu à tout instant (si une partie est en cours elle ne sera pas sauvegardée) : q
Quitter une partie en la sauvegardant : s
Démarrer une nouvelle partie ou une sauvegarde : enter
La technique utilisé pour la génération aléatoire du donjon est décrite ici.
Le rapport de couverture de code par les tests est disponibles en ouvrant ce fichier target/site/jacoco/index.html dans votre navigateur.
Ce projet utilise la librairie Ascii-panel pour générer une imitation de terminal.
-
La mainClass s’appelle RogueLikeApp, elle exécute la méthode run() de la classe RogueLike. La classe RogueLike affiche l’écran d’accueil du jeu, et exécute la méthode run() de la classe Board lorsqu’une partie est lancée.
-
Le dossier UI contient toutes les classes qui gèrent l’interface utilisateur
Dans une partie, lorsqu’un utilisateur enfonce une touche sur son clavier, la méthode processInput() de la classe Board s’exécute. Un objet Commande est retourné.
L’interface Commande impose aux classes l’implémentant de définir une méthode execute(). C’est dans cette méthode que sont définis les actions faites par la commande en question. Une fois l’objet Commande retourné, c’est cette méthode execute() qui est exécutée dans la méthode run() de la classe Board.