diff --git a/src/Circuit.java b/src/Circuit.java index 1006dcb..de3cfd8 100644 --- a/src/Circuit.java +++ b/src/Circuit.java @@ -1,25 +1,97 @@ -public class Circuit { - private final CircuitCell type; +/** + * Représente une cellule du circuit. + *
+ * Chaque cellule possède un type ({@link CircuitCell}) et éventuellement une valeur + * numérique (par exemple pour indiquer une intensité, une vitesse, ou un identifiant de route). + *
+ */ +public class Circuit +{ + /** Type de la cellule (vide, route, départ, arrivée, etc.) */ + private final CircuitCell type; + + /** Valeur associée à la cellule (optionnelle, dépend du type) */ private int value; - public Circuit(CircuitCell type) - { + /** + * 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(CircuitCell type) + { this.type = type; - this.value = type.ordinal(); + this.value = type.ordinal(); } - public Circuit(CircuitCell type, int value) - { + /** + * 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(CircuitCell type, int value) + { this.type = type; - this.value = value; + this.value = value; } - - public Circuit setValue(int value) - { - this.value = value; - return this; - } - public CircuitCell getType() { return type; } - public int getValue() { return 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 CircuitCell 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 == CircuitCell.ROAD || type == CircuitCell.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 == CircuitCell.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 == CircuitCell.FINISH; + } +} \ No newline at end of file