Rogue-Like with AsciiPanel
Les commandes pour jouer à Rogue Like :
mvn install:install-file -Dfile=lib/asciiPanel.jar -DgroupId=asciipanel -DartifactId=asciipanel -Dversion=1.0 -Dpackaging=jar
mvn package
java -jar target/rogue_like-1.0-jar-with-dependencies.jar
Pour générer la javadoc :
mvn site
Le groupe a suivi le tutoriel du Trystan’s blog jusqu’au tutoriel 04 sur le joueur.
En effet, à partir de ce tuto, nous avions toutes les connaissances pour mener
à bien ce projet.
On y retrouve les énumérations Arme, Difficulte, Element correspondant aux informations constituant le monde à créer.
Les classes Monde et MondeBuilder (issues du tutoriel 03) permettent de créer la carte où pourra se déplacer les PNJ ainsi que
le joueur.
Ce sera la classe PlayScreen qui initialisera Monde en appelant des méthodes de MondeBuilder.
On retrouve dans ce package la classe mère abstraite Creature dont les classes
Joueur et PNJ héritent. En effet, que ce soit Joueur ou PNJ, ils ont en commun une position sur la carte,
un caractère pour être représenté, de la vie, etc…
On a également une énumération EnumPNJ représentant les différents PNJ possibles dans le jeu (ici nous avons
un sorcier ou un zombie) dont l’attaque (points de dégats) et la défense (nombre de points de vie) n’est pas
la même.
Ce package contient les classes Sauvegarde permettant de sauvegarder la partie en cours de jeu (carte sur lequel le joueur joue,
les paramètres choisis par l’utilisateur, le ‘stuff’ du joueur, les informations sur les PNJ présents sur la map, etc…
Cette classe va donc écrire des types primitifs dans le fichier save/save.txt pour représenter la partie sauvegardée.
La classe Chargement sera, quand à elle, capable d’interpréter le fichier save/save.txt pour réafficher la partie sauvegardée,
et ainsi, permettre au joueur de continuer à joueur sur sa partie.
Ce package est dans le seul but de lancer des exceptions en cas de problème lors du jeu Rogue Like.
On retrouve les différentes interfaces permettant d’imprimer
à l’écran les différents affichages : menu de démarrage (StartScreen), menu de paramètres (ChoiceScreen),
écran du jeu (PlayScreen) et l’écran Game Over (LoseScreen) qui implémentent tous la même interface Screen.
Sur PlayScreen, on va créer un nouveau Monde qu’on initialisera aléatoirement avec une liste de PNJ agressifs (en fonction
de la difficulté) et un villageois (pour faire un échange contre la clef).
Lors de l’appel de la partie sauvegardée, Playscreen créera la carte, le joueur et les PNJ en fonction de ce que
Chargement va lire dans save/save.txt
Sachant que le groupe n’a pas voulu plagier le tutoriel ainsi que du code sur Internet,
nous voulions faire notre propre génération de carte. C’est pour cela que nous avons choisi de créer une
grande salle, avec quelques murs placés aléatoirement, dans laquelle tous les PNJ se trouvaient avec le joueur.
Comme amélioration, nous aurions pu apporter une génération de salles complexes.
Comme amélioration, nous aurions pu ajouter d’autres armes et d’autres types de PNJ.