Package reversi
Class FastReversiBoard
java.lang.Object
reversi.FastReversiBoard
Classe optimisée pour représenter un plateau de Reversi en utilisant
des masques binaires (bitboards) pour des opérations rapides.
Utilise deux long (64 bits) : un pour les pions noirs, un pour les pions blancs.
Chaque bit représente une case (1 = occupée par la couleur, 0 = vide ou autre couleur).
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionFastReversiBoard(long black, long white) Constructeur direct avec masques binaires.Convertit un plateau ReversiPlateau standard en représentation binaire optimisée. -
Method Summary
Modifier and TypeMethodDescriptioncopy()Crée une copie profonde de ce plateau.longgetValidMovesBitmask(boolean blackTurn) Calcule les coups valides pour un joueur donné sous forme de masque binaire.voidmakeMove(int x, int y, boolean blackTurn) Applique un coup sur le plateau (modifie l'état actuel).
-
Field Details
-
black
public long blackMasque binaire des pions noirs. Chaque bit à 1 représente une case occupée par un pion noir. -
white
public long whiteMasque binaire des pions blancs. Chaque bit à 1 représente une case occupée par un pion blanc.
-
-
Constructor Details
-
FastReversiBoard
public FastReversiBoard(long black, long white) Constructeur direct avec masques binaires.- Parameters:
black- Masque binaire des pions noirs.white- Masque binaire des pions blancs.
-
FastReversiBoard
Convertit un plateau ReversiPlateau standard en représentation binaire optimisée.- Parameters:
p- Le plateau ReversiPlateau à convertir.
-
-
Method Details
-
copy
Crée une copie profonde de ce plateau.- Returns:
- Une nouvelle instance avec les mêmes masques binaires.
-
getValidMovesBitmask
public long getValidMovesBitmask(boolean blackTurn) Calcule les coups valides pour un joueur donné sous forme de masque binaire. Chaque bit à 1 dans le résultat représente une case où un coup est possible.- Parameters:
blackTurn- true si c'est le tour des noirs, false pour les blancs.- Returns:
- Masque binaire des coups valides (bits à 1 = coups possibles).
-
makeMove
public void makeMove(int x, int y, boolean blackTurn) Applique un coup sur le plateau (modifie l'état actuel). Place un pion et retourne tous les pions adverses capturés.- Parameters:
x- Coordonnée x (ligne) du coup (0-7).y- Coordonnée y (colonne) du coup (0-7).blackTurn- true si c'est le tour des noirs, false pour les blancs.
-