public void CalculateOpeningMove() { ChessEngine chessEngine = new ChessEngine(); chessEngine.New(); Move move = chessEngine.CalculateMove(); Assert.IsNotNull(move); }
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"))); }
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"))); }
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); }
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); }