Package modele

Class Case

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

public class Case extends Object implements Serializable
Représente une case sur la carte du jeu.

Une case peut contenir :

  • un personnage (occupant),
  • une liste d'objets (items),
  • un obstacle bloquant le passage.
Elle implémente Serializable pour permettre la sauvegarde de l’état du jeu.
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Classe interne servant de DTO (Data Transfer Object) pour la sérialisation JSON d’un coffre.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final List<Item>
    Liste d'objets (items) présents sur la case (simule un coffre).
    Obstacle présent sur la case (peut être null si aucun obstacle).
    private Personnage
    Personnage actuellement sur la case (null si vide).
    private static final long
    Identifiant de version pour la sérialisation.
    private final int
    Coordonnée X de la case sur la carte (abscisse).
    private final int
    Coordonnée Y de la case sur la carte (ordonnée).
  • Constructor Summary

    Constructors
    Constructor
    Description
    Case(int x, int y)
    Constructeur d’une case à une position donnée.
  • Method Summary

    Modifier and Type
    Method
    Description
    Retourne la liste des objets présents sur la case.
    Retourne l’obstacle présent sur la case (ou null s’il n’y en a pas).
    Retourne le personnage occupant actuellement la case (ou null si vide).
    int
    Retourne la coordonnée X de la case.
    int
    Retourne la coordonnée Y de la case.
    void
    Définit un obstacle sur cette case.
    void
    Définit le personnage occupant la case.
    void
    Supprime l’obstacle présent sur la case (la case redevient franchissable).
    Sérialise toute la case (y compris occupant et obstacle) au format JSON.
    Sérialise uniquement les informations du coffre (items) au format JSON.
    void
    Vide le coffre de la case, c’est-à-dire supprime tous les objets.
    void
    Supprime le personnage actuellement sur la case (la case redevient vide).

    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:
    • x

      private final int x
      Coordonnée X de la case sur la carte (abscisse).
    • y

      private final int y
      Coordonnée Y de la case sur la carte (ordonnée).
    • occupant

      private Personnage occupant
      Personnage actuellement sur la case (null si vide).
    • items

      private final List<Item> items
      Liste d'objets (items) présents sur la case (simule un coffre).
    • obstacle

      private Carte.ObstacleType obstacle
      Obstacle présent sur la case (peut être null si aucun obstacle).
  • Constructor Details

    • Case

      public Case(int x, int y)
      Constructeur d’une case à une position donnée. Initialise une case vide sans obstacle ni occupant.
      Parameters:
      x - Position horizontale de la case.
      y - Position verticale de la case.
  • Method Details

    • getOccupant

      public Personnage getOccupant()
      Retourne le personnage occupant actuellement la case (ou null si vide).
      Returns:
      Le personnage occupant la case, ou null si la case est vide.
    • setOccupant

      public void setOccupant(Personnage p)
      Définit le personnage occupant la case.
      Parameters:
      p - Le personnage à placer sur la case.
    • viderOccupant

      public void viderOccupant()
      Supprime le personnage actuellement sur la case (la case redevient vide).
    • getItems

      public List<Item> getItems()
      Retourne la liste des objets présents sur la case.
      Returns:
      Liste des objets (items) présents sur la case.
    • viderCoffre

      public void viderCoffre()
      Vide le coffre de la case, c’est-à-dire supprime tous les objets.
    • getObstacle

      public Carte.ObstacleType getObstacle()
      Retourne l’obstacle présent sur la case (ou null s’il n’y en a pas).
      Returns:
      L’obstacle sur la case, ou null.
    • setObstacle

      public void setObstacle(Carte.ObstacleType o)
      Définit un obstacle sur cette case.
      Parameters:
      o - L’obstacle à placer (EAU, ROCHE, FORET, etc.).
    • supprimerObstacle

      public void supprimerObstacle()
      Supprime l’obstacle présent sur la case (la case redevient franchissable).
    • getX

      public int getX()
      Retourne la coordonnée X de la case.
      Returns:
      La position X (abscisse).
    • getY

      public int getY()
      Retourne la coordonnée Y de la case.
      Returns:
      La position Y (ordonnée).
    • toJSON

      public String toJSON()
      Sérialise toute la case (y compris occupant et obstacle) au format JSON. Utile pour sauvegarder ou déboguer l’état complet d’une case.
      Returns:
      Chaîne JSON représentant cette case.
    • toJSONCoffre

      public String toJSONCoffre()
      Sérialise uniquement les informations du coffre (items) au format JSON. Ce format est plus léger, utilisé pour afficher uniquement le contenu de la case comme un coffre sans inclure occupant ou obstacle.
      Returns:
      Chaîne JSON représentant le coffre (coordonnées + objets).