mirror of
https://github.com/guezoloic/racing-game.git
synced 2026-03-31 11:11:38 +00:00
Ajout de la partie view du projet
This commit is contained in:
139
model/Circuit.java
Normal file
139
model/Circuit.java
Normal file
@@ -0,0 +1,139 @@
|
||||
package model;
|
||||
/**
|
||||
* Représente une cellule du circuit.
|
||||
* <p>
|
||||
* Chaque cellule possède un type ({@link Cell}) et éventuellement une valeur
|
||||
* numérique (par exemple pour indiquer une intensité, une vitesse, ou un identifiant de route).
|
||||
* </p>
|
||||
*/
|
||||
public class Circuit
|
||||
{
|
||||
/**
|
||||
* <code>Cell</code> est un enum
|
||||
* représentant les différents types de
|
||||
* cases qui composent le circuit de
|
||||
* course.
|
||||
*/
|
||||
public static enum Cell
|
||||
{
|
||||
/**
|
||||
* Case hors piste, non
|
||||
* praticable par les
|
||||
* voitures. */
|
||||
EMPTY,
|
||||
|
||||
/**
|
||||
* Case de route normale
|
||||
* sur laquelle les voitures
|
||||
* peuvent circuler.
|
||||
*/
|
||||
ROAD,
|
||||
|
||||
/**
|
||||
* Case correspondant à la
|
||||
* ligne de départ du circuit.
|
||||
*/
|
||||
START,
|
||||
|
||||
/**
|
||||
* Case correspondant à la
|
||||
* ligne d'arrivée du circuit.
|
||||
*/
|
||||
FINISH,
|
||||
|
||||
/**
|
||||
* Case de route jaune, plus
|
||||
* d'information sur le
|
||||
* livrable 2
|
||||
*/
|
||||
YROAD;
|
||||
}
|
||||
|
||||
/** Type de la cellule (vide, route, départ, arrivée, etc.) */
|
||||
private final Cell type;
|
||||
|
||||
/** Valeur associée à la cellule (optionnelle, dépend du type) */
|
||||
private int value;
|
||||
|
||||
/**
|
||||
* Construit une cellule avec un type défini et une valeur par défaut
|
||||
* égale à l’indice ordinal du type.
|
||||
*
|
||||
* @param type le type de la cellule
|
||||
*/
|
||||
public Circuit(Cell type)
|
||||
{
|
||||
this.type = type;
|
||||
this.value = type.ordinal();
|
||||
}
|
||||
|
||||
/**
|
||||
* Construit une cellule avec un type et une valeur spécifique.
|
||||
*
|
||||
* @param type le type de la cellule
|
||||
* @param value la valeur associée à la cellule
|
||||
*/
|
||||
public Circuit(Cell type, int value)
|
||||
{
|
||||
this.type = type;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Modifie la valeur associée à la cellule.
|
||||
*
|
||||
* @param value la nouvelle valeur
|
||||
* @return cette même instance (pour chaînage fluide)
|
||||
*/
|
||||
public Circuit setValue(int value)
|
||||
{
|
||||
this.value = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return le type de la cellule
|
||||
*/
|
||||
public Cell getType()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return la valeur associée à la cellule
|
||||
*/
|
||||
public int getValue()
|
||||
{
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si la cellule est une route (ROAD ou YROAD).
|
||||
*
|
||||
* @return vrai si la cellule représente une route
|
||||
*/
|
||||
public boolean isRoad()
|
||||
{
|
||||
return type == Cell.ROAD || type == Cell.YROAD;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si la cellule est un point de départ.
|
||||
*
|
||||
* @return vrai si la cellule représente le départ
|
||||
*/
|
||||
public boolean isStart()
|
||||
{
|
||||
return type == Cell.START;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si la cellule est un point d’arrivée.
|
||||
*
|
||||
* @return vrai si la cellule représente la fin du circuit
|
||||
*/
|
||||
public boolean isFinish()
|
||||
{
|
||||
return type == Cell.FINISH;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user