Package reversi

Class FastReversiBoard

java.lang.Object
reversi.FastReversiBoard

public class FastReversiBoard extends Object
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
    Modifier and Type
    Field
    Description
    long
    Masque binaire des pions noirs.
    long
    Masque binaire des pions blancs.
  • Constructor Summary

    Constructors
    Constructor
    Description
    FastReversiBoard(long black, long white)
    Constructeur direct avec masques binaires.
    Convertit un plateau ReversiPlateau standard en représentation binaire optimisée.
  • Method Summary

    Modifier and Type
    Method
    Description
    Crée une copie profonde de ce plateau.
    long
    getValidMovesBitmask(boolean blackTurn)
    Calcule les coups valides pour un joueur donné sous forme de masque binaire.
    void
    makeMove(int x, int y, boolean blackTurn)
    Applique un coup sur le plateau (modifie l'état actuel).

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • black

      public long black
      Masque binaire des pions noirs. Chaque bit à 1 représente une case occupée par un pion noir.
    • white

      public long white
      Masque 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

      public FastReversiBoard(ReversiPlateau p)
      Convertit un plateau ReversiPlateau standard en représentation binaire optimisée.
      Parameters:
      p - Le plateau ReversiPlateau à convertir.
  • Method Details

    • copy

      public FastReversiBoard 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.