Exemplo n.º 1
0
        public void TestLegalJumps()
        {
            var board = new CheckerBoard();

            board.AddPiece(PieceColor.White, CheckerBoard.SIZE - 1, 0);
            board.AddPiece(PieceColor.Black, CheckerBoard.SIZE - 2, 1); // One below and to the right
            var whiteMoves = board.GetLegalMoves(PieceColor.White);
            var blackMoves = board.GetLegalMoves(PieceColor.Black);

            Assert.AreEqual(1, whiteMoves.Count);
            Assert.AreEqual(1, blackMoves.Count);
            var whiteMove = new Move(board.GetPiece(CheckerBoard.SIZE - 1, 0), new List <MoveDirection>  {
                MoveDirection.ForwardRight
            });
            var blackMove = new Move(board.GetPiece(CheckerBoard.SIZE - 2, 1), new List <MoveDirection> {
                MoveDirection.ForwardRight
            });

            Assert.AreEqual(whiteMove, whiteMoves[0]);
            Assert.AreEqual(blackMove, blackMoves[0]);
        }
Exemplo n.º 2
0
        public void TestLegalJumpsWontJumpOverOwnPiece()
        {
            var board = new CheckerBoard();

            board.AddPiece(PieceColor.White, CheckerBoard.SIZE - 1, 0);
            board.AddPiece(PieceColor.White, CheckerBoard.SIZE - 2, 1); // One below and to the right
            var whiteMoves = board.GetLegalMoves(PieceColor.White);

            Assert.AreEqual(2, whiteMoves.Count);
            var moveForwardLeft  = new Move(new CheckerPiece(board.GetPiece(CheckerBoard.SIZE - 2, 1)), MoveDirection.ForwardLeft);
            var moveForwardRight = new Move(new CheckerPiece(board.GetPiece(CheckerBoard.SIZE - 2, 1)), MoveDirection.ForwardRight);

            Assert.IsTrue(whiteMoves.Contains(moveForwardLeft));
            Assert.IsTrue(whiteMoves.Contains(moveForwardRight));
        }
Exemplo n.º 3
0
        public void TestKingJump()
        {
            var board = new CheckerBoard();

            board.AddPiece(PieceColor.Black, CheckerBoard.SIZE - 1, 0);
            board.GetPiece(CheckerBoard.SIZE - 1, 0).IsKing = true;
            board.AddPiece(PieceColor.White, CheckerBoard.SIZE - 2, 1);
            //board.PlacePiece(PieceColor.White, Board.BOARD_SIZE - 4, 3);
            var blackMoves = board.GetLegalMoves(PieceColor.Black);

            Assert.AreEqual(1, blackMoves.Count);
            var blackMove = new Move(board.GetPiece(CheckerBoard.SIZE - 1, 0), new List <MoveDirection> {
                MoveDirection.BackwardRight
            });

            Assert.AreEqual(blackMove, blackMoves[0]);
        }
Exemplo n.º 4
0
        public void TestMultipleJumps()
        {
            var board = new CheckerBoard();

            board.AddPiece(PieceColor.White, CheckerBoard.SIZE - 1, 0);
            board.AddPiece(PieceColor.Black, CheckerBoard.SIZE - 2, 1);
            board.AddPiece(PieceColor.Black, CheckerBoard.SIZE - 4, 3);
            var whiteMoves = board.GetLegalMoves(PieceColor.White);

            Assert.AreEqual(1, whiteMoves.Count);
            var whiteMove = new Move(board.GetPiece(CheckerBoard.SIZE - 1, 0), new List <MoveDirection>
            {
                MoveDirection.ForwardRight,
                MoveDirection.ForwardRight
            });

            Assert.AreEqual(whiteMove, whiteMoves[0]);
        }