예제 #1
0
        public void MateTest1()
        {
            var bod =
                "後手の持駒:角二 桂二 歩五 \n" +
                "  9 8 7 6 5 4 3 2 1\n" +
                "+---------------------------+\n" +
                "|v香 ・ ・ ・ ・ ・ ・ ・v香|一\n" +
                "| ・ ・ ・ ・ 銀 ・v金 ・ ・|二\n" +
                "| ・ ・ とv歩v歩 ・ ・v歩 ・|三\n" +
                "| ・ ・ ・ ・ ・ ・v歩 ・v歩|四\n" +
                "| 歩 ・ 銀 金 ・ 飛 ・ ・ ・|五\n" +
                "| ・ ・ 銀 歩 ・ 金 ・v玉 歩|六\n" +
                "| 玉 歩 桂 ・ ・ ・ ・ ・ ・|七\n" +
                "| ・ ・ 歩 ・ ・ 歩 金 ・ ・|八\n" +
                "| 香v飛 ・ ・ ・ 銀 ・ ・ 香|九\n" +
                "+---------------------------+\n" +
                "先手の持駒:桂 歩 \n" +
                "手数=130";
            var board = BodBoard.Parse(bod);

            var move = BoardMove.CreateDrop(
                BWType.Black,
                new Square(2, 7),
                PieceType.Hu);

            Assert.False(board.CanMove(move));
            Assert.False(board.DoMove(move));
        }
예제 #2
0
        public void MateTest2()
        {
            var bod =
                "# ----  棋譜ファイル  ----\n" +
                "先手:先手\n" +
                "後手:後手\n" +
                "後手の持駒:歩三 \n" +
                "  9 8 7 6 5 4 3 2 1\n" +
                "+---------------------------+\n" +
                "|v香v桂 ・ ・ ・ ・ ・ ・ ・|一\n" +
                "| ・ ・ ・ ・ ・ ・ ・ ・ ・|二\n" +
                "|v玉v桂v歩 金 ・ ・ ・ ・ ・|三\n" +
                "| ・ ・ ・ ・ ・ ・ ・ ・ ・|四\n" +
                "| ・ 銀 ・ 歩 ・ ・ ・ ・ ・|五\n" +
                "| 玉 ・ 歩 ・ 歩 香 ・ ・ ・|六\n" +
                "| ・v金 銀 金 ・ ・ ・ ・ ・|七\n" +
                "| ・ ・v馬 銀 ・ ・ ・ ・ ・|八\n" +
                "| 香 ・ ・ ・ ・ ・ ・ ・ ・|九\n" +
                "+---------------------------+\n" +
                "先手の持駒:飛二 角 金 銀 桂二 香 歩十一 \n" +
                "手数=0\n" +
                "後手番\n";
            var board = BodBoard.Parse(bod);

            var move = BoardMove.CreateDrop(
                BWType.White,
                new Square(9, 5),
                PieceType.Hu);

            Assert.False(board.CanMove(move));
            Assert.False(board.DoMove(move));
        }
예제 #3
0
        /// <summary>
        /// bod形式の局面を読み取り、実際の局面に直します。
        /// </summary>
        public Board ParseBoard(string text)
        {
            var board = BodBoard.Parse(text);

            Assert.NotNull(board);
            Assert.True(board.Validate());

            var bod = board.ToBod();

            Assert.True(bod.Contains(text));

            return(board);
        }
예제 #4
0
        public void BlackTest3()
        {
            var board = BodBoard.Parse(
                "後手の持駒:飛 金二 銀 歩二\n" +
                "  9 8 7 6 5 4 3 2 1\n" +
                "+---------------------------+\n" +
                "|v香v桂 ・v金v玉v金v銀v桂v香|一\n" +
                "| ・ ・ ・ ・ ・ ・ ・ ・ ・|二\n" +
                "|v歩 ・v歩v歩v歩v歩 ・v歩v歩|三\n" +
                "| ・v歩 ・ ・ ・ ・v歩 ・ ・|四\n" +
                "| ・ ・ ・ ・ ・ ・ ・ ・ ・|五\n" +
                "| ・ ・ 歩 ・ ・ ・ ・ ・ ・|六\n" +
                "| 歩 歩 ・ 歩v龍v馬 歩 歩 歩|七\n" +
                "| ・ ・ ・ ・ ・ ・v銀 ・ ・|八\n" +
                "| 香 桂 銀 ・ 玉 ・ ・ 桂 香|九\n" +
                "+---------------------------+\n" +
                "先手の持駒:角");

            Assert.True(board.IsChecked(BWType.Black));
            Assert.False(board.IsChecked(BWType.White));
            Assert.False(board.IsCheckMated());
        }
예제 #5
0
 /// <summary>
 /// bod形式の文字列から局面を作成します。
 /// </summary>
 public static Board ParseBod(string bod)
 {
     return(BodBoard.Parse(bod));
 }