Package engine

Class MoteurDeJeu

java.lang.Object
engine.MoteurDeJeu

public class MoteurDeJeu extends Object
MoteurDeJeu : classe centrale qui gère l’état du jeu, l’interprétation des commandes utilisateur, la logique des combats, la navigation sur la carte et la gestion des inventaires.

Cette classe fonctionne comme une machine à états et coordonne toutes les entités principales du jeu (joueur, carte, monstres, objets).

  • Field Details

  • Constructor Details

    • MoteurDeJeu

      public MoteurDeJeu()
      Constructeur principal. Initialise les commandes autorisées dans chaque état du jeu.
  • Method Details

    • initialiserCommandes

      private void initialiserCommandes()
      Initialise toutes les commandes autorisées, pour chaque état possible.

      Les mappings sont stockés dans la map commandesParEtat.

    • gererCommande

      public String gererCommande(String cmdStr, String argtxt, int argint)
      Interprète et exécute une commande utilisateur, en fonction de l’état courant du jeu.
      Parameters:
      cmdStr - Nom de la commande (ex: "NORD", "INVENTAIRE", "ATTAQUER").
      argtxt - Argument textuel (souvent inutilisé).
      argint - Argument entier (ID d’objet, etc).
      Returns:
      Texte résultat ou message d’erreur pour l’utilisateur.
    • getEtatActuel

      private MoteurDeJeu.EtatJeu getEtatActuel()
      Détermine l’état courant du jeu (machine à états).
      Returns:
      L’état courant (PAS_DE_MONDE, EXPLORATION, COMBAT...).
    • afficherAide

      private String afficherAide()
      Affiche la chaîne d’aide générale ou contextuelle (selon état).
      Returns:
      Liste des commandes possibles, formatée.
    • genererMonde

      private String genererMonde()
      Génère un nouveau monde et place le joueur (si existant) en position (0,0).
      Returns:
      Message de confirmation.
    • creerNouveauJoueur

      private String creerNouveauJoueur(String nom, int unused)
      Crée un nouveau joueur et lui donne des objets de départ.
      Parameters:
      nom - Nom du joueur (obligatoire).
      unused - Ignoré.
      Returns:
      Message de création ou d’erreur.
    • deplacerOuCombattre

      private String deplacerOuCombattre(String dir)
      Déplace le joueur ou démarre un combat si un monstre est sur la case cible.
      Parameters:
      dir - Direction ("NORD", "SUD", "EST", "OUEST").
      Returns:
      Résultat du déplacement ou début de combat.
    • gererCombat

      private String gererCombat(String cmd)
      Gère une commande de combat (attaque/défense/fuite) du joueur.
      Parameters:
      cmd - "ATTAQUER", "DEFENDRE" ou "FUIR".
      Returns:
      Log du tour et résultat du combat si terminé.
    • traiterEquiper

      private String traiterEquiper(int id)
      Tente d’équiper un objet depuis l’inventaire selon son ID.
      Parameters:
      id - Identifiant de l’objet.
      Returns:
      Message de succès ou d’erreur.
    • traiterDesequiper

      private String traiterDesequiper(int id)
      Tente de déséquiper un objet déjà équipé selon son ID.
      Parameters:
      id - Identifiant de l’équipement.
      Returns:
      Message de résultat.
    • traiterUtiliser

      private String traiterUtiliser(int id)
      Tente d’utiliser un objet de l’inventaire selon son ID.
      Parameters:
      id - Identifiant de l’objet.
      Returns:
      Message de résultat.
    • traiterJeter

      private String traiterJeter(int id)
      Jette un objet de l’inventaire selon son ID.
      Parameters:
      id - Identifiant de l’objet.
      Returns:
      Message de résultat.
    • coffreExistant

      private boolean coffreExistant()
      Vérifie s’il y a un coffre à la position du joueur.
      Returns:
      true si présent, false sinon.
    • ouvrirCoffre

      private String ouvrirCoffre()
      Affiche le contenu du coffre sous le joueur, ou un message si absent.
      Returns:
      Contenu JSON du coffre, ou texte "Pas de coffre ici."
    • ramasserToutCoffre

      private String ramasserToutCoffre()
      Ramasse tous les items du coffre sous le joueur.
      Returns:
      Liste des objets ramassés ou message d’absence de coffre.
    • ramasserObjetCoffre

      private String ramasserObjetCoffre(int id)
      Ramasse un objet spécifique dans le coffre selon son ID.
      Parameters:
      id - Identifiant de l’objet à ramasser.
      Returns:
      Message de résultat.
    • chargerPartie

      private String chargerPartie(String fichier, int ignore)
      Charge une partie à partir d’un fichier de sauvegarde.
      Parameters:
      fichier - Nom du fichier à charger.
      ignore - Argument non utilisé.
      Returns:
      Message de résultat.
    • sauvegarderPartie

      private String sauvegarderPartie(String fichier, int ignore)
      Sauvegarde l’état actuel du jeu dans un fichier.
      Parameters:
      fichier - Nom du fichier.
      ignore - Argument non utilisé.
      Returns:
      Message de succès ou d’erreur.
    • estEnCombat

      public boolean estEnCombat()
      Indique si un combat est en cours.
      Returns:
      true si le joueur est en combat, false sinon.
    • coffrePresentSousJoueur

      public boolean coffrePresentSousJoueur()
      Indique s’il y a un coffre sous le joueur.
      Returns:
      true si un coffre est présent sous le joueur.
    • joueurExiste

      public boolean joueurExiste()
      Indique si un joueur existe actuellement dans le jeu.
      Returns:
      true si oui, false sinon.
    • mondeExiste

      public boolean mondeExiste()
      Indique si un monde (carte) existe actuellement dans le jeu.
      Returns:
      true si oui, false sinon.