public static void CapturePromotedPiece() { CrazyhouseChessGame game = new CrazyhouseChessGame("3r4/1P6/4k3/8/8/8/8/4K3 w - - 0 1"); game.MakeMove(new Move("B7", "B8", Player.White, 'Q'), true); game.MakeMove(new Move("D8", "B8", Player.Black), true); Assert.AreEqual(1, game.BlackPocket.Count); Assert.AreEqual(0, game.WhitePocket.Count); Assert.AreEqual('p', game.BlackPocket[0].GetFenCharacter()); }
public static void TestMakeMove_AddToPocketIfCapture_AndFenGeneration_AndApplyDrop() { CrazyhouseChessGame game = new CrazyhouseChessGame(); game.MakeMove(new Move("E2", "E4", Player.White), true); game.MakeMove(new Move("D7", "D5", Player.Black), true); game.MakeMove(new Move("E4", "D5", Player.White), true); Assert.AreEqual(new Pawn(Player.White), game.WhitePocket[0]); Assert.AreEqual("rnbqkbnr/ppp1pppp/8/3P4/8/8/PPPP1PPP/RNBQKBNR/P b KQkq - 0 2", game.GetFen()); game.MakeMove(new Move("A7", "A5", Player.Black), true); Assert.True(game.ApplyDrop(new Drop(new Pawn(Player.White), new Position("H3"), Player.White), false)); Assert.AreEqual("rnbqkbnr/1pp1pppp/8/p2P4/8/7P/PPPP1PPP/RNBQKBNR b KQkq - 1 3", game.GetFen()); Assert.AreEqual(0, game.WhitePocket.Count); }
public static void TestUndoNYI() { string fen = "rnbqkbnr/ppp1pppp/8/3p4/4P3/8/PPPP1PPP/RNBQKBNR/ w KQkq - 2 2"; CrazyhouseChessGame game = new CrazyhouseChessGame(fen); game.MakeMove(new Move("E4", "D5", Player.White), true); Assert.Throws <NotImplementedException>(() => game.Undo()); }
public static void TestFenTilde() { CrazyhouseChessGame game = new CrazyhouseChessGame("rnbqkb1r/pP3ppp/5n2/4p3/8/8/PPPP1PPP/RNBQKBNR/PPP w KQkq - 8 5"); game.MakeMove(new Move("B7", "A8", Player.White, 'Q'), true); Assert.AreEqual("Q~nbqkb1r/p4ppp/5n2/4p3/8/8/PPPP1PPP/RNBQKBNR/PPPR b KQk - 0 5", game.GetFen()); game = new CrazyhouseChessGame("Q~n1qkb1r/pb3ppp/5n2/4p3/8/2N5/PPPP1PPP/R1BQKBNR/RPPP b KQk - 11 6"); game.MakeMove(new Move("B7", "A8", Player.Black), true); Assert.AreEqual('p', game.BlackPocket[0].GetFenCharacter()); }