コード例 #1
0
ファイル: FENParserTests.cs プロジェクト: Maniulo/GameWarden
        public void ParseDefault()
        {
            var parser = new FENParser();
            string fenRecord = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";

            Assert.AreEqual(fenRecord, parser.Parse(fenRecord).ToString());
        }
コード例 #2
0
ファイル: FENParserTests.cs プロジェクト: Maniulo/GameWarden
        public void ParseEmptySpaces()
        {
            var parser = new FENParser();
            string fenRecord = "r1b2b2/1ppppp2/8/8/8/8/7P/RNBQKBNR w KQkq - 0 1";

            Assert.AreEqual(fenRecord, parser.Parse(fenRecord).ToString());
        }
コード例 #3
0
ファイル: NotationTests.cs プロジェクト: Maniulo/GameWarden
 public void ParseFENCastling()
 {
     ChessState gameState = new FENParser().Parse("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w Kq - 0 1");
     Assert.IsTrue(gameState.Castling.KingsideWhite);
     Assert.IsFalse(gameState.Castling.QueensideWhite);
     Assert.IsFalse(gameState.Castling.KingsideBlack);
     Assert.IsTrue(gameState.Castling.QueensideBlack);
 }
コード例 #4
0
ファイル: ChessMoveTests.cs プロジェクト: Maniulo/GameWarden
        public void CannotSolveKingSuicide()
        {
            string from = "1r6/8/8/8/8/8/7r/K7 w KQkq - 0 1";

            var players = new List<Player> { new Player(1), new Player(2) };
            var s = new FENParser().Parse(from, players);
            var m = new ChessMove("Kb2") { PieceType = PieceTypes.King, Player = players[0], From = new Position(), To = "b2" };
            m.Apply(s);
        }
コード例 #5
0
ファイル: ChessMoveTests.cs プロジェクト: Maniulo/GameWarden
        public void SolveNothing()
        {
            string from = "8/8/8/8/8/3R4/2R1R3/3R4 w KQkq - 0 1";
            string   to = "8/8/8/8/8/3R4/2RRR3/8 b KQkq - 0 1";

            var players = new List<Player> { new Player(1), new Player(2) };
            var s = new FENParser().Parse(from, players);
            var m = new ChessMove("Rd1d2") { PieceType = PieceTypes.Rook, Player = players[0], From = "d1", To = "d2" };
            m.Apply(s);
            Assert.AreEqual(to, s.ToString());
        }
コード例 #6
0
ファイル: ChessMoveTests.cs プロジェクト: Maniulo/GameWarden
        public void SolveKingUnderCheck()
        {
            string from = "3r4/8/8/8/8/8/3N1N2/3K4 w KQkq - 0 1";
            string to = "3r4/8/8/8/4N3/8/3N4/3K4 b KQkq - 0 1";

            var players = new List<Player> { new Player(1), new Player(2) };
            var s = new FENParser().Parse(from, players);
            var m = new ChessMove("Ne4") { PieceType = PieceTypes.Knight, Player = players[0], From = new Position(), To = "e4" };
            m.Apply(s);
            Assert.AreEqual(to, s.ToString());
        }
コード例 #7
0
ファイル: ChessMoveTests.cs プロジェクト: Maniulo/GameWarden
        public void SolveFile()
        {
            string from = "R7/8/8/8/8/8/8/R7 w KQkq - 0 1";
            string   to = "R7/8/8/8/R7/8/8/8 b KQkq - 0 1";

            var players = new List<Player> { new Player(1), new Player(2) };
            var s = new FENParser().Parse(from, players);
            var m = new ChessMove("R1a4") { PieceType = PieceTypes.Rook, Player = players[0], From = new Position(null, 1), To = "a4"};
            m.Apply(s);
            Assert.AreEqual(to, s.ToString());
        }
コード例 #8
0
ファイル: ChessMoveTests.cs プロジェクト: Maniulo/GameWarden
        public void SimpleMove()
        {
            string from = "8/8/8/8/8/8/P7/8 w KQkq - 0 1";
            string   to = "8/8/8/8/8/P7/8/8 b KQkq - 0 1";

            var players = new List<Player> { new Player(1), new Player(2) };
            var s = new FENParser().Parse(from, players);
            var m = new ChessMove("a3") { PieceType = PieceTypes.Pawn, Player = players[0], From = new Position(), To = "a3"};
            m.Apply(s);
            Assert.AreEqual(to, s.ToString());
        }
コード例 #9
0
ファイル: ChessGame.cs プロジェクト: Maniulo/GameWarden
        public ChessGame(Meta metainfo)
        {
            Info = metainfo;

            Players.Add(new Player(1));
            Players.Add(new Player(2));

            State = new FENParser().Parse(
                (Info["FEN"] == null) || (Info["FEN"].Equals("")) ? FENParser.DefaultFEN : Info["FEN"],
                 Players);
        }
コード例 #10
0
ファイル: FENParserTests.cs プロジェクト: Maniulo/GameWarden
 public void ParseWrongBoard()
 {
     var parser = new FENParser();
     string fenRecord = "z1b2b2/1ppppp2/8/8/8/8/7P";
     parser.ParseBoard(fenRecord);
 }
コード例 #11
0
ファイル: FENParserTests.cs プロジェクト: Maniulo/GameWarden
 public void ParseNoEnding()
 {
     var parser = new FENParser();
     string fenRecord = "r1b2b2/1ppppp2/8/8/8/8/7P/RNBQKBNR";
     parser.Parse(fenRecord);
 }
コード例 #12
0
ファイル: FENParserTests.cs プロジェクト: Maniulo/GameWarden
 public void ParseBoardDefault()
 {
     var parser = new FENParser();
     string fenRecord = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR";
     Assert.AreEqual(fenRecord, parser.ParseBoard(fenRecord).ToStringShort());
 }
コード例 #13
0
ファイル: ChessMoveTests.cs プロジェクト: Maniulo/GameWarden
        public void SolveRightPlayer()
        {
            string from = "8/8/8/8/8/8/8/R6r w KQkq - 0 1";
            string to = "8/8/8/8/8/8/8/3R3r b KQkq - 0 1";

            var players = new List<Player> { new Player(1), new Player(2) };
            var s = new FENParser().Parse(from, players);
            var m = new ChessMove("Rd1") { PieceType = PieceTypes.Rook, Player = players[0], From = new Position(), To = "d1" };
            m.Apply(s);
            Assert.AreEqual(to, s.ToString());
        }