Package modele
Class Carte
java.lang.Object
modele.Carte
- All Implemented Interfaces:
Serializable
Représente la carte du jeu sous forme de grille de cases.
Chaque case peut contenir un personnage, des objets ou un obstacle.
La carte permet de gérer les déplacements, les interactions et les obstacles.
Implémente Serializable pour permettre la sauvegarde et le chargement de la carte.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumEnumération représentant les différents types d'obstacles possibles sur la carte. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Case[][]Grille de cases représentant la carte.private final intHauteur de la carte (nombre de lignes).private final intLargeur de la carte (nombre de colonnes).private static final longIdentifiant de version pour la sérialisation. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanajouterItemsAuCoffre(int x, int y, List<Item> items) Ajoute une liste d'objets à la case spécifiée, simulant un coffre contenant des objets.booleandefinirObstacle(int x, int y, Carte.ObstacleType obstacle) Définit un obstacle sur une case donnée.booleandeplacerPersonnage(Personnage p, String direction) Déplace un personnage dans une direction donnée si la case cible est valide et libre.booleanRetire un personnage de la carte s'il est bien présent à sa position.booleanennemiProche(Personnage p, String direction) Vérifie si un ennemi ou tout autre occupant est présent dans la case adjacente dans la direction donnée.booleanestFranchissable(int x, int y) Vérifie si une case est franchissable (pas d’obstacle).booleanestValide(int x, int y) Vérifie si une paire de coordonnées est dans les limites de la carte.Case[][]Retourne la grille de cases de la carte.intRetourne la hauteur de la carte (nombre de lignes).intRetourne la largeur de la carte (nombre de colonnes).obtenirCase(int x, int y) Récupère la case aux coordonnées spécifiées.booleanPlace un personnage sur la carte à ses coordonnées actuelles si la case est valide, franchissable et non occupée.toJSON()Sérialise la carte en une chaîne JSON lisible.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDIdentifiant de version pour la sérialisation.- See Also:
-
largeur
private final int largeurLargeur de la carte (nombre de colonnes). -
hauteur
private final int hauteurHauteur de la carte (nombre de lignes). -
grille
Grille de cases représentant la carte.
-
-
Constructor Details
-
Carte
public Carte(int largeur, int hauteur) Constructeur de la carte. Initialise une grille de cases vides avec les coordonnées appropriées.- Parameters:
largeur- Nombre de colonnes de la carte.hauteur- Nombre de lignes de la carte.
-
-
Method Details
-
getLargeur
public int getLargeur()Retourne la largeur de la carte (nombre de colonnes).- Returns:
- la largeur de la carte
-
getHauteur
public int getHauteur()Retourne la hauteur de la carte (nombre de lignes).- Returns:
- la hauteur de la carte
-
placerPersonnage
Place un personnage sur la carte à ses coordonnées actuelles si la case est valide, franchissable et non occupée.- Parameters:
p- Le personnage à placer.- Returns:
- true si le placement a réussi, false sinon.
-
enleverPersonnage
Retire un personnage de la carte s'il est bien présent à sa position.- Parameters:
p- Le personnage à enlever.- Returns:
- true si le personnage a été retiré, false sinon.
-
deplacerPersonnage
Déplace un personnage dans une direction donnée si la case cible est valide et libre.- Parameters:
p- Le personnage à déplacer.direction- La direction souhaitée ("NORD", "SUD", "EST", "OUEST").- Returns:
- true si le déplacement a réussi, false sinon.
-
ennemiProche
Vérifie si un ennemi ou tout autre occupant est présent dans la case adjacente dans la direction donnée.- Parameters:
p- Le personnage depuis lequel on vérifie.direction- La direction à vérifier.- Returns:
- true si un occupant est présent dans cette direction, false sinon.
- Throws:
IllegalArgumentException- si la direction est invalide.
-
ajouterItemsAuCoffre
Ajoute une liste d'objets à la case spécifiée, simulant un coffre contenant des objets.- Parameters:
x- Coordonnée X de la case.y- Coordonnée Y de la case.items- Liste d'objets à ajouter.- Returns:
- true si les objets ont été ajoutés, false sinon.
-
definirObstacle
Définit un obstacle sur une case donnée.- Parameters:
x- Coordonnée X de la case.y- Coordonnée Y de la case.obstacle- Le type d'obstacle à placer.- Returns:
- true si l'obstacle a été placé, false sinon.
-
estValide
public boolean estValide(int x, int y) Vérifie si une paire de coordonnées est dans les limites de la carte.- Parameters:
x- Coordonnée X à vérifier.y- Coordonnée Y à vérifier.- Returns:
- true si les coordonnées sont valides, false sinon.
-
estFranchissable
public boolean estFranchissable(int x, int y) Vérifie si une case est franchissable (pas d’obstacle).- Parameters:
x- Coordonnée X.y- Coordonnée Y.- Returns:
- true si la case est franchissable, false sinon.
-
obtenirCase
Récupère la case aux coordonnées spécifiées.- Parameters:
x- Coordonnée X.y- Coordonnée Y.- Returns:
- L'objet Case correspondant.
- Throws:
IndexOutOfBoundsException- si les coordonnées sont invalides.
-
toJSON
Sérialise la carte en une chaîne JSON lisible. Utile pour le débogage ou la sauvegarde/exportation de l’état de la carte.- Returns:
- Une représentation JSON de la carte.
-
getGrille
Retourne la grille de cases de la carte.- Returns:
- La grille de cases (hauteur x largeur).
-