Ceci est un projet d'examen en Java pour créer un jeu de rôle (RPG) en console.
Le but du projet est de développer un jeu de rôle (RPG) jouable en console, où le joueur incarne un héros affrontant une infinité d'ennemis générés aléatoirement dans des combats au tour par tour. L’objectif est de vaincre le plus d’ennemis possible avant de mourir. À la fin de la partie, le score (nombre d’ennemis vaincus) est affiché et sauvegardé dans un fichier associé au nom du joueur.
- Rendre mon code modulaire et réutilisable
- Identifier les différentes classes et interfaces
- Réflexion sur l'utilisation des Design Patterns
- Classe abstraite
Personnageavec :-
nom,pv,attaque,défense - méthode
attaquer(Personnage cible) - méthode
prendreDegats(int degats) - méthode
estVivant()
-
- Classe
Herohéritant dePersonnageavec :-
mana - méthode
utiliserPouvoir(Personnage cible)(ex : sort de feu) - gestion de potions de soin (1 par combat)
-
- Classe
Ennemihéritant dePersonnage, avec plusieurs variantes :-
Gobelin,Dragon,Troll, etc.
-
- Interface
PouvoirSpecial:void utiliserPouvoir(Personnage cible);
- Implémentée par
Heropour les sorts magiques (infligeant plus de dégâts, consommant du mana) - Peut être réutilisée plus tard pour des ennemis spéciaux
- Le joueur choisit entre : attaquer, utiliser un pouvoir, ou une potion
- L’ennemi attaque automatiquement s’il est vivant
- Affichage console dynamique :
> Arthus attaque Troll ! Il inflige 12 dégâts. > Troll attaque Arthus ! Il inflige 6 dégâts. - Le joueur voit :
- Le numéro de l’ennemi rencontré
- Ses propres PV, mana, et potions restantes
- Les PV de l’adversaire
- À chaque victoire, un nouvel ennemi est généré aléatoirement
- Le jeu continue jusqu’à ce que le joueur meure
- Un compteur d’ennemis vaincus est affiché à la fin
- Le score est sauvegardé dans un fichier
scores.txtau format :Arthus a vaincu 6 ennemis
- Entrée invalide → message d'erreur et nouvelle demande
- Pas assez de mana → message d’erreur sans action
- Plus de potion → message d’erreur
- Le héros gagne de l’XP après chaque combat
- À chaque niveau : augmentation de stats (PV, attaque, mana...)
- Avant de commencer, le joueur choisit une classe (Guerrier, Mage, Voleur)
- Ramassage de loot (potions, armes, objets spéciaux)
- Gestion dynamique de l’inventaire (affichage, utilisation)
- Le héros peut s’équiper d’armes et armures (épée, armure…)
- Compétences spéciales, IA conditionnelle
- Pièces d’or, boutique entre les combats
- Sauvegarde/reprise de partie
- Affichage du top 5 des scores
- Boss toutes les 5 victoires
- Difficulté croissante, zones
-
journal.txtavec tout l’historique
- Chances de critique/esquive
- Certains sorts limités dans le temps
- Recrutement d’alliés pour un combat
- Pièges, trésors, embuscades
- Effets persistants
- Procédural, stats et noms aléatoires
- Méthode
afficherFiche()
- Illustrations monstres/héros
- Facile / Normal / Difficile
-
Clone le projet :
git clone https://github.com/AnaelTech/tp-rpg.git cd tp-rpg -
Compile le projet :
javac -d bin src/main/java/fr/hb/rpg/*.java -
Lance le jeu :
java -cp bin fr.hb.rpg.App
Ou utilisation avec Maven :
-
Compile le projet :
mvn clean install
-
Lance le jeu :
mvn exec:java
Au lancement, le jeu demande le nom du héros. Ensuite, le joueur affronte des ennemis aléatoires dans des combats au tour par tour en choisissant chaque action via la console.
À la fin, le nombre d’ennemis vaincus est affiché et sauvegardé dans le fichier scores.txt.
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche pour votre fonctionnalité
- Commit vos changements
- Push vers la branche
- Ouvrir une Pull Request
Ce projet est sous licence MIT.
Généré avec le script GitHub Repository Creator