Example #1
0
 public ChessMove(Square fromSq, Square toSq, Piece promotedTo)
 {
     this.fromSq = fromSq;
     this.toSq = toSq;
     this.special = SpecialMoveType.Promotion;
     this.promotedTo = promotedTo;
 }
Example #2
0
 public ToMoveData(PieceColour colour, Piece pawn, Piece knight, Piece bishop, Piece rook, Piece queen, Piece king, int pawnStartRank, int pawnPromRank, int pawnYDir,
     CastleFlags canCastleKS, CastleFlags canCastleQS, Square kingStartSq, Square kingRookSq, Square queenRookSq)
 {
     Colour = colour;
     Pawn = pawn;
     Knight = knight;
     Bishop = bishop;
     Rook = rook;
     Queen = queen;
     King = king;
     PawnStartRank = pawnStartRank;
     PawnPromRank = pawnPromRank;
     PawnYDir = pawnYDir;
     CanCastleKS = canCastleKS;
     CanCastleQS = canCastleQS;
     KingStartSq = kingStartSq;
     KingRookSq = kingRookSq;
     QueenRookSq = queenRookSq;
     KingKCastleSq = new Square(kingStartSq.File + 2, kingStartSq.Rank);
     KingQCastleSq = new Square(kingStartSq.File - 2, kingStartSq.Rank);
     RookKCastleSq = new Square(kingStartSq.File + 1, kingStartSq.Rank);
     RookQCastleSq = new Square(kingStartSq.File - 1, kingStartSq.Rank);
 }
Example #3
0
 public SquareInfo(Piece piece, Square location)
 {
     this.piece = piece;
     this.location = location;
 }
Example #4
0
 bool checkForSlidingAttacksFrom(int file, int rank, int xDir, int yDir, Piece piece1, Piece piece2)
 {
     file += xDir;
     rank += yDir;
     while (file >= 0 && file <= 7 && rank >= 0 && rank <= 7)
     {
         Piece p = Board[file + rank * 8].Piece;
         if (p == piece1 || p == piece2) return true;
         if (p != Pieces.None) return false;
         file += xDir;
         rank += yDir;
     }
     return false;
 }
Example #5
0
 bool checkForEnemyPawnAt(int file, int rank, Piece enemyPawn)
 {
     return (file >= 0 && file <= 7 && rank >= 0 && rank <= 7 && Board[file + rank * 8].Piece == enemyPawn);
 }