Skip to content

AnaelTech/tp-rpg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tp-rpg

Ceci est un projet d'examen en Java pour créer un jeu de rôle (RPG) en console.

📚 Description

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.

❌ Difficultés

  • Rendre mon code modulaire et réutilisable
  • Identifier les différentes classes et interfaces
  • Réflexion sur l'utilisation des Design Patterns

📚 Fonctionnalités attendues

1. Création des entités

  • Classe abstraite Personnage avec :
    • nom, pv, attaque, défense
    • méthode attaquer(Personnage cible)
    • méthode prendreDegats(int degats)
    • méthode estVivant()
  • Classe Hero héritant de Personnage avec :
    • mana
    • méthode utiliserPouvoir(Personnage cible) (ex : sort de feu)
    • gestion de potions de soin (1 par combat)
  • Classe Ennemi héritant de Personnage, avec plusieurs variantes :
    • Gobelin, Dragon, Troll, etc.

2. Interface de Pouvoir

  • Interface PouvoirSpecial :
    void utiliserPouvoir(Personnage cible);
  • Implémentée par Hero pour les sorts magiques (infligeant plus de dégâts, consommant du mana)
  • Peut être réutilisée plus tard pour des ennemis spéciaux

3. Combat tour par tour

  • 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

4. Ennemis générés aléatoirement

  • À chaque victoire, un nouvel ennemi est généré aléatoirement
  • Le jeu continue jusqu’à ce que le joueur meure

5. Compteur et score

  • Un compteur d’ennemis vaincus est affiché à la fin
  • Le score est sauvegardé dans un fichier scores.txt au format :
    Arthus a vaincu 6 ennemis
    

6. Gestion des exceptions

  • Entrée invalide → message d'erreur et nouvelle demande
  • Pas assez de mana → message d’erreur sans action
  • Plus de potion → message d’erreur

✨ Fonctionnalités bonus à implémenter (futur)

🧙‍♂️ 1. Système d’expérience (XP) et montée de niveau

  • Le héros gagne de l’XP après chaque combat
  • À chaque niveau : augmentation de stats (PV, attaque, mana...)

⚔️ 2. Choix de la classe du héros

  • Avant de commencer, le joueur choisit une classe (Guerrier, Mage, Voleur)

🎒 3. Inventaire complet

  • Ramassage de loot (potions, armes, objets spéciaux)
  • Gestion dynamique de l’inventaire (affichage, utilisation)

🛡️ 4. Système d’équipement

  • Le héros peut s’équiper d’armes et armures (épée, armure…)

🧠 5. Ennemis plus intelligents

  • Compétences spéciales, IA conditionnelle

🪙 6. Système de monnaie et boutique

  • Pièces d’or, boutique entre les combats

📜 7. Fichier de sauvegarde de partie

  • Sauvegarde/reprise de partie

🏆 8. Classement des meilleurs scores

  • Affichage du top 5 des scores

💀 9. Boss aléatoires avec nom généré

  • Boss toutes les 5 victoires

🌋 10. Niveaux ou zones progressives

  • Difficulté croissante, zones

📖 11. Journal de combat

  • journal.txt avec tout l’historique

🎲 12. Attaques critiques ou esquives aléatoires

  • Chances de critique/esquive

⌛ 13. Pouvoirs à rechargement

  • Certains sorts limités dans le temps

🎭 14. Alliés temporaires

  • Recrutement d’alliés pour un combat

🧩 15. Événements aléatoires entre combats

  • Pièges, trésors, embuscades

🧪 16. Système de statut : poison, gel, brûlure

  • Effets persistants

🧬 17. Ennemis générés dynamiquement

  • Procédural, stats et noms aléatoires

🧾 18. Interface Affichable pour tous les personnages

  • Méthode afficherFiche()

🎨 19. Affichage en ASCII Art

  • Illustrations monstres/héros

🎚️ 20. Système de difficulté

  • Facile / Normal / Difficile

🛠️ Installation

  1. Clone le projet :

    git clone https://github.com/AnaelTech/tp-rpg.git
    cd tp-rpg
  2. Compile le projet :

    javac -d bin src/main/java/fr/hb/rpg/*.java
  3. Lance le jeu :

    java -cp bin fr.hb.rpg.App

    Ou utilisation avec Maven :

  4. Compile le projet :

    mvn clean install
  5. Lance le jeu :

    mvn exec:java

▶️ Utilisation

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.

Contribution

Les contributions sont les bienvenues ! N'hésitez pas à :

  1. Fork le projet
  2. Créer une branche pour votre fonctionnalité
  3. Commit vos changements
  4. Push vers la branche
  5. Ouvrir une Pull Request

Licence

Ce projet est sous licence MIT.


Généré avec le script GitHub Repository Creator

About

Ceci est un projet d'examen en java pour créer un rpg en console

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages