Package engine
Class MoteurDeJeu
java.lang.Object
engine.MoteurDeJeu
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).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static enumÉnumération exhaustive des commandes reconnues par le moteur de jeu.private static interfaceInterface fonctionnelle interne : représente une action à exécuter en réponse à une commande utilisateur, pour un état donné.private static enumÉtats principaux possibles du jeu (machine à états). -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate CarteCarte du monde actuellement chargée ou générée.private CombatCombat en cours si le joueur affronte un monstre.private final EnumMap<MoteurDeJeu.EtatJeu, EnumMap<MoteurDeJeu.CommandeJeu, MoteurDeJeu.CommandHandler>> Mapping des commandes autorisées selon l’état du jeu.private JoueurJoueur principal contrôlé par l'utilisateur. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate StringAffiche la chaîne d’aide générale ou contextuelle (selon état).private StringchargerPartie(String fichier, int ignore) Charge une partie à partir d’un fichier de sauvegarde.private booleanVérifie s’il y a un coffre à la position du joueur.booleanIndique s’il y a un coffre sous le joueur.private StringcreerNouveauJoueur(String nom, int unused) Crée un nouveau joueur et lui donne des objets de départ.private StringDéplace le joueur ou démarre un combat si un monstre est sur la case cible.booleanIndique si un combat est en cours.private StringGénère un nouveau monde et place le joueur (si existant) en position (0,0).private StringgererCombat(String cmd) Gère une commande de combat (attaque/défense/fuite) du joueur.gererCommande(String cmdStr, String argtxt, int argint) Interprète et exécute une commande utilisateur, en fonction de l’état courant du jeu.private MoteurDeJeu.EtatJeuDétermine l’état courant du jeu (machine à états).private voidInitialise toutes les commandes autorisées, pour chaque état possible.booleanIndique si un joueur existe actuellement dans le jeu.booleanIndique si un monde (carte) existe actuellement dans le jeu.private StringAffiche le contenu du coffre sous le joueur, ou un message si absent.private StringramasserObjetCoffre(int id) Ramasse un objet spécifique dans le coffre selon son ID.private StringRamasse tous les items du coffre sous le joueur.private StringsauvegarderPartie(String fichier, int ignore) Sauvegarde l’état actuel du jeu dans un fichier.private StringtraiterDesequiper(int id) Tente de déséquiper un objet déjà équipé selon son ID.private StringtraiterEquiper(int id) Tente d’équiper un objet depuis l’inventaire selon son ID.private StringtraiterJeter(int id) Jette un objet de l’inventaire selon son ID.private StringtraiterUtiliser(int id) Tente d’utiliser un objet de l’inventaire selon son ID.
-
Field Details
-
carte
Carte du monde actuellement chargée ou générée. -
joueur
Joueur principal contrôlé par l'utilisateur. -
combat
Combat en cours si le joueur affronte un monstre. -
commandesParEtat
private final EnumMap<MoteurDeJeu.EtatJeu,EnumMap<MoteurDeJeu.CommandeJeu, commandesParEtatMoteurDeJeu.CommandHandler>> Mapping des commandes autorisées selon l’état du jeu.
-
-
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
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
Détermine l’état courant du jeu (machine à états).- Returns:
- L’état courant (PAS_DE_MONDE, EXPLORATION, COMBAT...).
-
afficherAide
Affiche la chaîne d’aide générale ou contextuelle (selon état).- Returns:
- Liste des commandes possibles, formatée.
-
genererMonde
Génère un nouveau monde et place le joueur (si existant) en position (0,0).- Returns:
- Message de confirmation.
-
creerNouveauJoueur
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
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
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
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
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
Tente d’utiliser un objet de l’inventaire selon son ID.- Parameters:
id- Identifiant de l’objet.- Returns:
- Message de résultat.
-
traiterJeter
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
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
Ramasse tous les items du coffre sous le joueur.- Returns:
- Liste des objets ramassés ou message d’absence de coffre.
-
ramasserObjetCoffre
Ramasse un objet spécifique dans le coffre selon son ID.- Parameters:
id- Identifiant de l’objet à ramasser.- Returns:
- Message de résultat.
-
chargerPartie
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
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.
-