示例#1
0
        public void Whether_Knight_CantMoveToIncorrectSquare_On_CanMoveTo()
        {
            var board = new Board();
            var knight = new Knight(new Square(4, 4), board, PieceColor.White);

            Assert.That(knight.CanMoveTo(new Square(5, 5)), Is.False);
        }
示例#2
0
        public void Whether_Queen_CanMoveToCornerSquares_On_CanMoveTo(int x, int y)
        {
            var board = new Board();
            var queen = new Queen(new Square(3, 3), board, PieceColor.White);

            Assert.That(queen.CanMoveTo(new Square(x, y)), Is.True);
        }
示例#3
0
        public void Whether_Queen_CantMoveToIncorrectSquare_On_CanMoveTo()
        {
            var board = new Board();
            var queen = new Queen(new Square(4, 4), board, PieceColor.White);

            Assert.That(queen.CanMoveTo(new Square(6, 3)), Is.False);
        }
示例#4
0
        public void Whether_Bishop_CantMoveToIncorrectSquare_On_CanMoveTo()
        {
            var board = new Board();
            var bishop = new Bishop(new Square(4, 4), board, PieceColor.White);

            Assert.That(bishop.CanMoveTo(new Square(6, 5)), Is.False);
        }
示例#5
0
        public void Whether_Rook_CantMoveToIncorrectSquare_On_CanMoveTo()
        {
            var board = new Board();
            var rook = new Rook(new Square(4, 4), board, PieceColor.White);

            Assert.That(rook.CanMoveTo(new Square(5, 5)), Is.False);
        }
示例#6
0
        public void Whether_Knight_CantMoveOutsideTheBoard_On_CanMoveTo()
        {
            var board = new Board();
            var knight = new Knight(new Square(1, 1), board, PieceColor.White);

            Assert.That(knight.PossibleMoves().Count() == 2);
            Assert.That(knight.CanMoveTo(new Square(-1, 2)), Is.False);
        }
示例#7
0
        public void Whether_Bishop_CantMoveToOccupiedSquare_On_CanMoveTo()
        {
            var board = new Board();
            var bishop = new Bishop(new Square(4, 4), board, PieceColor.White);
            var anotherKnight = new Knight(new Square(6, 6), board, PieceColor.White);

            Assert.That(bishop.CanMoveTo(new Square(6, 6)), Is.False);
        }
示例#8
0
        public void Whether_Rook_CantMoveToOccupiedSquare_On_CanMoveTo()
        {
            var board = new Board();
            var rook = new Rook(new Square(1, 1), board, PieceColor.White);
            var anotherKnight = new Knight(new Square(1, 6), board, PieceColor.White);

            Assert.That(rook.CanMoveTo(new Square(1, 6)), Is.False);
        }
示例#9
0
        public void Whether_Queen_CantMoveToOccupiedSquare_On_CanMoveTo()
        {
            var board = new Board();
            var queen = new Queen(new Square(4, 4), board, PieceColor.White);
            var anotherKnight = new Knight(new Square(6, 6), board, PieceColor.White);

            Assert.That(queen.CanMoveTo(new Square(6, 6)), Is.False);
        }
示例#10
0
        public void Whether_King_CantEscapeFromRookOnTheSameRank_On_CanMoveTo()
        {
            var board = new Board();
            var king = new King(new Square(4, 4), board, PieceColor.White);
            var bishop = new Rook(new Square(4, 7), board, PieceColor.Black);

            Assert.That(king.CanMoveTo(new Square(4, 3)), Is.False);
        }
示例#11
0
        public void Whether_King_CantMoveOutsideTheBoard_On_CanMoveTo()
        {
            var board = new Board();
            var king = new King(new Square(1, 1), board, PieceColor.White);

            Assert.That(king.PossibleMoves().Count() == 3);
            Assert.That(king.CanMoveTo(new Square(-1, -1)), Is.False);
        }
示例#12
0
        public void Whether_Queen_CantJumpOverAnotherPiece_On_CanMoveTo(PieceColor pieceColor)
        {
            var board = new Board();
            var queen = new Queen(new Square(4, 4), board, PieceColor.White);
            var knight = new Knight(new Square(5, 5), board, pieceColor);

            Assert.That(queen.CanMoveTo(new Square(6, 6)), Is.False);
        }
示例#13
0
        public void Whether_Queen_CanGrabOpponentsPiece_On_CanMoveTo()
        {
            var board = new Board();
            var queen = new Queen(new Square(4, 4), board, PieceColor.White);
            var knight = new Knight(new Square(5, 5), board, PieceColor.Black);

            Assert.That(queen.CanMoveTo(new Square(5, 5)), Is.True);
        }
示例#14
0
文件: Piece.cs 项目: AGRocks/chezzles
        public Piece(Square position, Board board, PieceColor color)
        {
            this.position = position;
            this.board = board;
            this.color = color;

            this.board.Squares[position] = this;
        }
示例#15
0
        public void Whether_Queen_CantMoveOutsideTheBoard_On_CanMoveTo()
        {
            var board = new Board();
            var queen = new Queen(new Square(1, 1), board, PieceColor.White);

            Assert.That(queen.PossibleMoves().Count() == 21);
            Assert.That(queen.CanMoveTo(new Square(-1, -1)), Is.False);
        }
示例#16
0
        public void Whether_Bishop_CantMoveOutsideTheBoard_On_CanMoveTo()
        {
            var board = new Board();
            var bishop = new Bishop(new Square(1, 1), board, PieceColor.White);

            Assert.That(bishop.PossibleMoves().Count() == 7);
            Assert.That(bishop.CanMoveTo(new Square(-1, -1)), Is.False);
        }
示例#17
0
        public void Whether_Rook_CantMoveOutsideTheBoard_On_CanMoveTo()
        {
            var board = new Board();
            var rook = new Rook(new Square(1, 1), board, PieceColor.White);

            Assert.That(rook.PossibleMoves().Count() == 14);
            Assert.That(rook.CanMoveTo(new Square(-1, 1)), Is.False);
        }
示例#18
0
        public void Whether_Rook_CantJumpOverAnotherPiece_On_CanMoveTo(PieceColor pieceColor)
        {
            var board = new Board();
            var rook = new Rook(new Square(4, 4), board, PieceColor.White);
            var knight = new Knight(new Square(4, 5), board, pieceColor);

            Assert.That(rook.CanMoveTo(new Square(4, 6)), Is.False);
        }
示例#19
0
        public void Whether_King_CantMoveToBeatenPawnSquare_On_CanMoveTo()
        {
            var board = new Board();
            var king = new King(new Square(4, 4), board, PieceColor.White);
            var bishop = new Pawn(new Square(5, 4), board, PieceColor.Black);

            Assert.That(king.CanMoveTo(new Square(4, 3)), Is.False);
        }
示例#20
0
        public void Whether_King_CantEscapeFromBishopOnTheSameDiagonal_OnCanMoveTo()
        {
            var board = new Board();
            var king = new King(new Square(4, 4), board, PieceColor.White);
            var bishop = new Bishop(new Square(5, 5), board, PieceColor.Black);

            Assert.That(king.CanMoveTo(new Square(3, 3)), Is.False);
        }
示例#21
0
        public void Whether_King_CanMoveToPossibleSquare_On_CanMoveTo(int offsetX, int offsetY)
        {
            var board = new Board();
            var king = new King(new Square(4, 4), board, PieceColor.White);

            Assert.That(king.CanMoveTo(
                new Square(king.Position.XPosition + offsetX,
                           king.Position.YPosition + offsetY)));
        }
示例#22
0
        public void Whether_Rook_CanMoveToPossibleSquare_On_CanMoveTo(int offsetX, int offsetY)
        {
            var board = new Board();
            var rook = new Rook(new Square(4, 4), board, PieceColor.White);

            Assert.That(rook.CanMoveTo(
                new Square(rook.Position.XPosition + offsetX,
                           rook.Position.YPosition + offsetY)));
        }
示例#23
0
        public void Whether_Bishop_CanMoveToPossibleSquare_On_CanMoveTo(int offsetX, int offsetY)
        {
            var board = new Board();
            var bishop = new Bishop(new Square(4, 4), board, PieceColor.White);

            Assert.That(bishop.CanMoveTo(
                new Square(bishop.Position.XPosition + offsetX,
                           bishop.Position.YPosition + offsetY)));
        }
示例#24
0
        public void Whether_Queen_CanMoveToPossibleSquare_On_CanMoveTo(int offsetX, int offsetY)
        {
            var board = new Board();
            var queen = new Queen(new Square(4, 4), board, PieceColor.White);

            Assert.That(queen.CanMoveTo(
                new Square(queen.Position.XPosition + offsetX,
                           queen.Position.YPosition + offsetY)));
        }
示例#25
0
        public void Whehter_Knight_CanMoveToPossibleSquare_On_CanMoveTo(int offsetX, int offsetY)
        {
            var board = new Board();
            var knight = new Knight(new Square(5, 4), board, PieceColor.White);

            Assert.That(knight.CanMoveTo(
                new Square(knight.Position.XPosition + offsetX,
                           knight.Position.YPosition + offsetY)));
        }
示例#26
0
        public void Whether_Bishop_ReturnsCorrectMoves_On_PossibleMoves()
        {
            var board = new Board();
            var bishop = new Bishop(new Square(4, 4), board, PieceColor.White);

            var possibleMoves = bishop.PossibleMoves();

            Assert.That(possibleMoves != null);
            Assert.That(possibleMoves.Count() == 13);
        }
示例#27
0
        public void Whether_Knight_ReturnsCorrectPossibleSquares_On_PossibleMoves()
        {
            var board = new Board();
            var knight = new Knight(new Square(4, 4), board, PieceColor.White);

            var possibleMoves = knight.PossibleMoves();

            Assert.That(possibleMoves != null);
            Assert.That(possibleMoves.Count() == 8);
        }
示例#28
0
        public void Whether_Rook_ReturnsCorrectMoves_On_PossibleMoves()
        {
            var board = new Board();
            var rook = new Rook(new Square(4, 4), board, PieceColor.White);

            var possibleMoves = rook.PossibleMoves();

            Assert.That(possibleMoves != null);
            Assert.That(possibleMoves.Count() == 14);
        }
示例#29
0
        public void Whether_Board_AddsPieces_On_PutPiece()
        {
            var board = new Board();
            var originalPosition = new Square(5, 4);
            var newPosition = new Square(4, 3);

            var bishop = new Bishop(originalPosition, board, PieceColor.White);
            var knight = new Bishop(newPosition, board, PieceColor.Black);

            Assert.That(board.Pieces != null);
            Assert.That(board.Pieces.Count() == 2);
        }
示例#30
0
        public void Whether_Board_InvokesOnPieceMoved_On_PieceMoveTo()
        {
            var board = new Board();
            var pieceMoved = false;
            board.PieceMoved += (b, m) => pieceMoved = true;
            var originalPosition = new Square(5, 4);
            var newPosition = new Square(4, 3);

            var bishop = new Bishop(originalPosition, board, PieceColor.White);
            bishop.MoveTo(newPosition);

            Assert.That(pieceMoved);
        }