Exemplo n.º 1
0
        public void CalculateOpeningMove()
        {
            ChessEngine chessEngine = new ChessEngine();

            chessEngine.New();

            Move move = chessEngine.CalculateMove();

            Assert.IsNotNull(move);
        }
Exemplo n.º 2
0
        public void CalculateOneMoveMate1()
        {
            ChessEngine chessEngine = new ChessEngine
            {
                ["G6"] = new King(Color.White, MoveType.Normal),
                ["H8"] = new King(Color.Black, MoveType.Normal),
                ["A1"] = new Rook(Color.White)
            };

            Move move = chessEngine.CalculateMove();

            Assert.IsTrue(move.End.AreEqual(new Position("A8")));
        }
Exemplo n.º 3
0
        public void CalculatePawnBeat()
        {
            ChessEngine chessEngine = new ChessEngine
            {
                ["H1"] = new King(Color.White, MoveType.Normal),
                ["E4"] = new Pawn(Color.White),
                ["G8"] = new King(Color.Black, MoveType.Normal),
                ["D5"] = new Pawn(Color.Black)
            };


            Move move = chessEngine.CalculateMove();

            Assert.IsTrue(move.End.AreEqual(new Position("D5")));
        }
Exemplo n.º 4
0
        public void CheckEnpassant()
        {
            ChessEngine chessEngine = new ChessEngine
            {
                ["G6"] = new King(Color.White, MoveType.Normal),
                ["C2"] = new Pawn(Color.White),
                ["H8"] = new King(Color.Black, MoveType.Normal),
                ["B4"] = new Pawn(Color.Black)
            };

            chessEngine.ExecuteMove(new Move("C2", "C4", chessEngine["C2"], MoveType.PawnDoubleStep));
            Move move = chessEngine.CalculateMove();

            chessEngine.ExecuteMove(move);

            Assert.IsTrue(move.Type == MoveType.EnpassantBlackLeft);
        }
Exemplo n.º 5
0
        public void CalculateTwoMoveMate()
        {
            ChessEngine chessEngine = new ChessEngine
            {
                ["G6"] = new King(Color.White, MoveType.Normal),
                ["C4"] = new Pawn(Color.White),
                ["H8"] = new King(Color.Black, MoveType.Normal),
                ["B5"] = new Pawn(Color.Black),
                ["G5"] = new Rook(Color.White)
            };

            Move move = chessEngine.CalculateMove();

            Assert.IsTrue(move.Rating.Evaluation == Evaluation.BlackCheckMate);
            Assert.IsTrue(move.Rating.Situation == Situation.WhiteVictory);
            Assert.IsTrue(move.Piece is Rook);
        }