Package modele

Class Carte

java.lang.Object
modele.Carte
All Implemented Interfaces:
Serializable

public class Carte extends Object implements 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 Classes
    Modifier and Type
    Class
    Description
    static enum 
    Enumération représentant les différents types d'obstacles possibles sur la carte.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final Case[][]
    Grille de cases représentant la carte.
    private final int
    Hauteur de la carte (nombre de lignes).
    private final int
    Largeur de la carte (nombre de colonnes).
    private static final long
    Identifiant de version pour la sérialisation.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Carte(int largeur, int hauteur)
    Constructeur de la carte.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    ajouterItemsAuCoffre(int x, int y, List<Item> items)
    Ajoute une liste d'objets à la case spécifiée, simulant un coffre contenant des objets.
    boolean
    definirObstacle(int x, int y, Carte.ObstacleType obstacle)
    Définit un obstacle sur une case donnée.
    boolean
    Déplace un personnage dans une direction donnée si la case cible est valide et libre.
    boolean
    Retire un personnage de la carte s'il est bien présent à sa position.
    boolean
    Vérifie si un ennemi ou tout autre occupant est présent dans la case adjacente dans la direction donnée.
    boolean
    estFranchissable(int x, int y)
    Vérifie si une case est franchissable (pas d’obstacle).
    boolean
    estValide(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.
    int
    Retourne la hauteur de la carte (nombre de lignes).
    int
    Retourne la largeur de la carte (nombre de colonnes).
    obtenirCase(int x, int y)
    Récupère la case aux coordonnées spécifiées.
    boolean
    Place un personnage sur la carte à ses coordonnées actuelles si la case est valide, franchissable et non occupée.
    Sérialise la carte en une chaîne JSON lisible.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Identifiant de version pour la sérialisation.
      See Also:
    • largeur

      private final int largeur
      Largeur de la carte (nombre de colonnes).
    • hauteur

      private final int hauteur
      Hauteur de la carte (nombre de lignes).
    • grille

      private final Case[][] 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

      public boolean placerPersonnage(Personnage p)
      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

      public boolean enleverPersonnage(Personnage p)
      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

      public boolean deplacerPersonnage(Personnage p, String direction)
      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

      public boolean ennemiProche(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.
      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

      public boolean ajouterItemsAuCoffre(int x, int y, List<Item> items)
      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

      public boolean definirObstacle(int x, int y, Carte.ObstacleType obstacle)
      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

      public Case obtenirCase(int x, int y)
      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

      public String 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

      public Case[][] getGrille()
      Retourne la grille de cases de la carte.
      Returns:
      La grille de cases (hauteur x largeur).