ActionSquadro
in package
Class ActionSquadro
Gère les actions de déplacement dans le jeu Squadro. Cette classe met à jour l'état du plateau, gère les collisions, effectue le déplacement des pièces, et vérifie les conditions de victoire.
Table of Contents
Properties
- $countBlancSortie : int
- $countNoirSortie : int
- $historiquePositions : array<string|int, mixed>
- $partieTerminee : bool
- $plateau : PlateauSquadro
Methods
- __construct() : mixed
- Constructeur.
- aTermineAllerRetour() : bool
- Vérifie si la pièce a terminé son aller-retour.
- estJouablePiece() : bool
- Vérifie si la pièce à la position donnée est jouable pour le joueur actif.
- jouerPiece() : void
- Joue la pièce à la position ($x, $y) pour le joueur actif.
- remporteVictoire() : bool
- Vérifie si les conditions de victoire sont remplies.
- sortirPiece() : void
- Gère la sortie d'une pièce (lorsqu'elle a terminé son aller-retour).
- aAtteintZoneRetournement() : bool
- Vérifie si la pièce a atteint la zone de retournement.
- aDejaEffectueAller() : bool
- Vérifie si la pièce adverse a déjà effectué son aller.
- afficherMessageVictoire() : void
- Affiche le message de victoire et termine l'exécution.
- gererCollisionsMultiples() : void
- Gère les collisions multiples sur la case d'arrivée.
- gererCollisionsSurTrajet() : void
- Gère les collisions sur le trajet du déplacement de la pièce.
- gererReculPieceAdverse() : void
- Déplace la pièce adverse en reculant, en fonction de la trajectoire de collision.
Properties
$countBlancSortie
private
int
$countBlancSortie
= 0
Nombre de pièces blanches sorties.
$countNoirSortie
private
int
$countNoirSortie
= 0
Nombre de pièces noires sorties.
$historiquePositions
private
array<string|int, mixed>
$historiquePositions
= []
Historique des positions de déplacement.
$partieTerminee
private
bool
$partieTerminee
= false
Indique si la partie est terminée (victoire).
$plateau
private
PlateauSquadro
$plateau
Le plateau de jeu.
Methods
__construct()
Constructeur.
public
__construct(PlateauSquadro $plateau) : mixed
Initialise l'action en liant le plateau passé en paramètre. Initialise les compteurs dans la session si non définis.
Parameters
- $plateau : PlateauSquadro
-
Le plateau de jeu.
aTermineAllerRetour()
Vérifie si la pièce a terminé son aller-retour.
public
aTermineAllerRetour(int $x, int $y) : bool
Parameters
- $x : int
-
Position X finale.
- $y : int
-
Position Y finale.
Return values
bool —True si la condition d'aller-retour est remplie, false sinon.
estJouablePiece()
Vérifie si la pièce à la position donnée est jouable pour le joueur actif.
public
estJouablePiece(int $x, int $y, int $joueurActif) : bool
Parameters
- $x : int
-
Position X de la pièce.
- $y : int
-
Position Y de la pièce.
- $joueurActif : int
-
Couleur du joueur actif.
Return values
bool —True si la pièce est jouable, false sinon.
jouerPiece()
Joue la pièce à la position ($x, $y) pour le joueur actif.
public
jouerPiece(int $x, int $y, int $joueurActif) : void
Effectue le déplacement, gère les collisions et met à jour l'état du plateau.
Parameters
- $x : int
-
Position X de la pièce à déplacer.
- $y : int
-
Position Y de la pièce à déplacer.
- $joueurActif : int
-
Couleur du joueur actif.
Tags
remporteVictoire()
Vérifie si les conditions de victoire sont remplies.
public
remporteVictoire() : bool
Return values
bool —True si l'une des conditions est remplie, false sinon.
sortirPiece()
Gère la sortie d'une pièce (lorsqu'elle a terminé son aller-retour).
public
sortirPiece(int $couleur, int $x, int $y) : void
Met à jour le compteur correspondant dans la session.
Parameters
- $couleur : int
-
La couleur de la pièce.
- $x : int
-
Position X de la pièce.
- $y : int
-
Position Y de la pièce.
aAtteintZoneRetournement()
Vérifie si la pièce a atteint la zone de retournement.
private
aAtteintZoneRetournement(int $x, int $y, PieceSquadro $piece) : bool
Parameters
- $x : int
-
Nouvelle position X.
- $y : int
-
Nouvelle position Y.
- $piece : PieceSquadro
-
La pièce concernée.
Return values
bool —True si la zone est atteinte, false sinon.
aDejaEffectueAller()
Vérifie si la pièce adverse a déjà effectué son aller.
private
aDejaEffectueAller(PieceSquadro $piece) : bool
Parameters
- $piece : PieceSquadro
-
La pièce adverse.
Return values
bool —True si l'aller a déjà été effectué, false sinon.
afficherMessageVictoire()
Affiche le message de victoire et termine l'exécution.
private
afficherMessageVictoire() : void
gererCollisionsMultiples()
Gère les collisions multiples sur la case d'arrivée.
private
gererCollisionsMultiples(int $x, int $y, PieceSquadro $piece) : void
Parameters
- $x : int
-
Position X de la case.
- $y : int
-
Position Y de la case.
- $piece : PieceSquadro
-
La pièce à déplacer.
gererCollisionsSurTrajet()
Gère les collisions sur le trajet du déplacement de la pièce.
private
gererCollisionsSurTrajet(int $x, int $y, int $newX, int $newY, PieceSquadro $piece) : void
Parameters
- $x : int
-
Position de départ X.
- $y : int
-
Position de départ Y.
- $newX : int
-
Position d'arrivée X.
- $newY : int
-
Position d'arrivée Y.
- $piece : PieceSquadro
-
La pièce à déplacer.
gererReculPieceAdverse()
Déplace la pièce adverse en reculant, en fonction de la trajectoire de collision.
private
gererReculPieceAdverse(int $x, int $y, PieceSquadro $pieceAdverse) : void
Parameters
- $x : int
-
Position X de la pièce adverse.
- $y : int
-
Position Y de la pièce adverse.
- $pieceAdverse : PieceSquadro
-
La pièce adverse à reculer.