71 lines
1.7 KiB
Java
71 lines
1.7 KiB
Java
package fr.iut_fbleau.Avalam.logic;
|
||
|
||
import fr.iut_fbleau.Avalam.Color;
|
||
import fr.iut_fbleau.Avalam.Tower;
|
||
|
||
/**
|
||
* La classe <code>GameState</code> représente l'état courant du jeu Avalam :
|
||
* - la grille 9×9
|
||
* - le joueur dont c'est le tour
|
||
*
|
||
* Elle ne contient aucune logique de déplacement ni de vérification des règles ;
|
||
* son rôle est uniquement de stocker et de fournir l'état du jeu.
|
||
*
|
||
* @author
|
||
* @version 1.0
|
||
*/
|
||
public class GameState {
|
||
|
||
/** Grille du plateau : 9×9 tours ou cases vides. */
|
||
private Tower[][] grid;
|
||
|
||
/** Joueur dont c’est le tour (COLOR1 ou COLOR2). */
|
||
private Color currentPlayer = Color.COLOR1;
|
||
|
||
/**
|
||
* Constructeur.
|
||
*
|
||
* @param grid la grille initiale du plateau.
|
||
*/
|
||
public GameState(Tower[][] grid) {
|
||
this.grid = grid;
|
||
}
|
||
|
||
/**
|
||
* Retourne la tour présente à la position (r,c), ou null.
|
||
*/
|
||
public Tower get(int r, int c) {
|
||
return grid[r][c];
|
||
}
|
||
|
||
/**
|
||
* Retourne la grille complète.
|
||
*/
|
||
public Tower[][] getGrid() {
|
||
return grid;
|
||
}
|
||
|
||
/**
|
||
* Retourne le joueur dont c'est le tour.
|
||
*/
|
||
public Color getCurrentPlayer() {
|
||
return currentPlayer;
|
||
}
|
||
|
||
/**
|
||
* Change le joueur courant : COLOR1 → COLOR2 → COLOR1.
|
||
*/
|
||
public void switchPlayer() {
|
||
currentPlayer = (currentPlayer == Color.COLOR1) ? Color.COLOR2 : Color.COLOR1;
|
||
}
|
||
|
||
/**
|
||
* Vérifie si une position (r,c) est dans les limites du plateau.
|
||
*
|
||
* @return vrai si la position est comprise dans un plateau 9×9.
|
||
*/
|
||
public boolean isInside(int r, int c) {
|
||
return r >= 0 && r < 9 && c >= 0 && c < 9;
|
||
}
|
||
}
|