示例#1
0
        private static bool IsStartingRank(Color color, ushort squareIndex)
        {
            var rank = MovingPieceService.RankFromIdx(squareIndex);

            if (color == Color.White)
            {
                return(rank == 1);
            }

            return(rank == 6);
        }
示例#2
0
        public void RookMovesShouldBeInitialized(ushort squareIndex)
        {
            var rank     = MovingPieceService.RankFromIdx(squareIndex);
            var file     = MovingPieceService.FileFromIdx(squareIndex);
            var rankFill = (ulong)0xff << (rank * 8);
            var fileFill = (ulong)0x101010101010101 << file;
            var boardVal = MovingPieceService.GetBoardValueOfIndex(squareIndex);

            var mask   = (rankFill | fileFill) ^ boardVal;
            var actual = BitBoard.GetPseudoLegalMoves(squareIndex, Piece.Rook, Color.Black, 0);

            Assert.AreEqual(mask, actual);
        }