Skip to content

lazare-rd/RogueLike_Game

Repository files navigation

Jeu Rogue-Like

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:

  • Ce mini-projet est à réaliser en Java par groupe de 2 étudiants.

    • les 2 étudiants doivent collaborer sur le même dépôt github.

  • Vous utiliserez git en effectuant des commits réguliers comportant des messages informatifs.

  • Il devra comporter une documentation que vous ajouterez dans ce fichier README.adoc.

    • la documentation devra décrire l’usage de l’application (manuel utilisateur) ainsi que la conception du jeu (manuel technique).

  • Le build sera assuré par Maven et plus précisément Maven wrapper (déjà intégré dans le projet). Aucune manipulation en dehors de Maven ne devra être nécessaire.

  • La version de Java à utiliser est la version 17.

  • Le build devra intégrer checkstyle pour la vérification des règles de codages Google. Le projet devra donc les respecter. checkstyle devra être exécuté automatiquement durant la phase validate du cycle de vie par défaut.

  • Des tests unitaires JUnit 5 (version 5.9.1) devront être disponibles pour la plupart des méthodes développées.

  • Un outil de Code Coverage devra être intégré au build

  • Les fonctionnalités du langage Java devront être utilisées au mieux (POO, exceptions, librairie de collections, I/O, …).

  • L’application devra pouvoir être exécutée à partir d’un jar incluant toutes les dépendances.

Description du jeu

  • 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.

Description de l’application à réaliser

  • 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 exemple ramasser 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.

Références

Manuel utilisateur

Scénario :

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.

Charactéristiques du PJ

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.

Charactéristiques des PNJ

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.

Commandes

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

Améliorations possibles

  • Rendre les zombies mobiles

  • Créer un marché ou dépenser les pièces gagnées en jeu

  • Permettre au personnage de tirer des balles pour tuer les zombies

  • Possibilité de supprimer une sauvegarde.

Manuel technique

Compiler le projet

Sous Linux
$ ./mvnw package
Sous Windows
> mvnw.cmd package

Éxécuter l’application

$ java -jar target/roguelike-1.0-SNAPSHOT-jar-with-dependencies.jar

Génération aléatoire du donjon

La technique utilisé pour la génération aléatoire du donjon est décrite ici.

Tests

Le rapport de couverture de code par les tests est disponibles en ouvrant ce fichier target/site/jacoco/index.html dans votre navigateur.

Librairie

Ce projet utilise la librairie Ascii-panel pour générer une imitation de terminal.

Classes

  • 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

Traitement des inputs 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.

About

A Rogue Like Game using a terminal emulator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages