package fr.iut_fbleau.Avalam.logic; import fr.iut_fbleau.Avalam.Color; import fr.iut_fbleau.Avalam.Tower; /** * La classe GameState 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; } }