Пример #1
0
 public ChessMove(Square fromSq, Square toSq, Piece promotedTo)
 {
     this.fromSq = fromSq;
     this.toSq = toSq;
     this.special = SpecialMoveType.Promotion;
     this.promotedTo = promotedTo;
 }
Пример #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);
 }
Пример #3
0
 public SquareInfo(Piece piece, Square location)
 {
     this.piece = piece;
     this.location = location;
 }
Пример #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;
 }
Пример #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);
 }