Files
BUT3ProjetJeuGroupe/fr/iut_fbleau/Avalam/logic/GameState.java

71 lines
1.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 cest 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;
}
}