Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Napoleon - king.cpp

king.cpp

Caricato da: Crybot
Scarica il programma completo

  1. #include "king.h"
  2. #include "utils.h"
  3. #include "movedatabase.h"
  4. #include "compassrose.h"
  5. #include "board.h"
  6.  
  7. namespace Napoleon
  8. {
  9.     BitBoard King::GetAllTargets(BitBoard king, Board& board)
  10.     {
  11.         BitBoard kingMoves = MoveDatabase::KingAttacks[(Utils::BitBoard::BitScanForward(king))];
  12.         return kingMoves & ~board.GetPlayerPieces();
  13.     }
  14.  
  15.     BitBoard King::GetKingAttacks(BitBoard king)
  16.     {
  17.         BitBoard attacks = CompassRose::OneStepEast(king) | CompassRose::OneStepWest(king);
  18.         king |= attacks;
  19.         attacks |= CompassRose::OneStepNorth(king) | CompassRose::OneStepSouth(king);
  20.         return attacks;
  21.     }
  22. }