Exemplo n.º 1
0
        public void ParseSameAsTest()
        {
            Assert.AreEqual(
                new LiteralMove
            {
                SameAsOld = true,
                Piece     = Piece.Hu,
            },
                ShogiParserEx.ParseMove("同歩", true));
            Assert.AreEqual(
                new LiteralMove
            {
                SameAsOld = true,
                Piece     = Piece.Ryu,
            },
                ShogiParserEx.ParseMove("同 流", true));
            Assert.AreEqual(
                new LiteralMove
            {
                SameAsOld = true,
                Piece     = Piece.Uma,
            },
                ShogiParserEx.ParseMove("DOU 馬", true));

            Assert.AreEqual(
                new LiteralMove
            {
                SameAsOld   = true,
                Piece       = Piece.Kin,
                RelFileType = RelFileType.Right,
            },
                ShogiParserEx.ParseMove("同衾右", true));

            Assert.AreEqual(
                new LiteralMove
            {
                SameAsOld = true,
                Piece     = Piece.Hu,
            },
                ShogiParserEx.ParseMove("34同じくおふーさん", true));
            Assert.AreEqual(
                new LiteralMove
            {
                SameAsOld    = true,
                Piece        = Piece.Gin,
                RelFileType  = RelFileType.Right,
                RankMoveType = RankMoveType.Up,
            },
                ShogiParserEx.ParseMove("34同 ぎん右上がる", true));
            Assert.AreEqual(
                new LiteralMove
            {
                SameAsOld    = true,
                Piece        = Piece.Gyoku,
                RelFileType  = RelFileType.Left,
                RankMoveType = RankMoveType.Back,
            },
                ShogiParserEx.ParseMove("99dou kinghidarisagaru", true));
        }
Exemplo n.º 2
0
        private static void TestMove(Board board, string moveStr, bool makeMove = false)
        {
            var move = ShogiParserEx.ParseMove(moveStr, true);

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

            TestMove(board, move, makeMove);
        }
Exemplo n.º 3
0
        public void ParseSpecialMoveTest()
        {
            Assert.AreEqual(
                new LiteralMove
            {
                SpecialMoveType = SpecialMoveType.Resign,
            },
                ShogiParserEx.ParseMove("投了", true));
            Assert.AreEqual(
                new LiteralMove
            {
                SpecialMoveType = SpecialMoveType.Interrupt,
                BWType          = BWType.Black,
            },
                ShogiParserEx.ParseMove("▲中断", true));
            Assert.AreEqual(
                new LiteralMove
            {
                SpecialMoveType = SpecialMoveType.Sennichite,
                BWType          = BWType.White,
            },
                ShogiParserEx.ParseMove("△千日手", true));
            Assert.AreEqual(
                new LiteralMove
            {
                SpecialMoveType = SpecialMoveType.TimeUp,
                BWType          = BWType.Black,
            },
                ShogiParserEx.ParseMove("▼時間切れ", true));
            Assert.AreEqual(
                new LiteralMove
            {
                SpecialMoveType = SpecialMoveType.Resign,
                BWType          = BWType.White,
            },
                ShogiParserEx.ParseMove("▽とうりょう", true));
            Assert.AreEqual(
                new LiteralMove
            {
                SpecialMoveType = SpecialMoveType.Jishogi,
            },
                ShogiParserEx.ParseMove("持将棋X", false));

            Assert.Null(ShogiParserEx.ParseMove("不明", true));
            Assert.Null(ShogiParserEx.ParseMove("投 了", true));
            Assert.Null(ShogiParserEx.ParseMove("▲投了A", true));
        }
Exemplo n.º 4
0
        public void ResignTest()
        {
            var resign = new LiteralMove
            {
                SpecialMoveType = SpecialMoveType.Resign,
            };

            Assert.AreEqual(
                ShogiParserEx.ParseMove("まけました", true),
                resign);
            Assert.AreEqual(
                ShogiParserEx.ParseMove("あ、まけました", true),
                resign);
            Assert.AreNotEqual(
                ShogiParserEx.ParseMove("あ 負けました", true),
                resign);
        }
Exemplo n.º 5
0
        public void ParsePlayerTest()
        {
            var player1 = new ShogiPlayer()
            {
                Nickname   = "てすと",
                SkillLevel = new SkillLevel(SkillKind.Kyu, 9),
            };

            AssertPlayer(
                player1,
                ShogiParserEx.ParsePlayer("てすと 9級"));
            AssertPlayer(
                player1,
                ShogiParserEx.ParsePlayer(" てすと きゅうきゅう"));
            AssertPlayer(
                player1,
                ShogiParserEx.ParsePlayer("  てすと  きゅう級"));
            AssertPlayer(
                player1,
                ShogiParserEx.ParsePlayer("  てすと 9級"));
            AssertPlayerNot(
                player1,
                ShogiParserEx.ParsePlayer("  てすと 級きゅう"));
            AssertPlayer(
                player1,
                ShogiParserEx.ParsePlayer("てすと 急急"));

            /*var player2 = new ShogiPlayer()
             * {
             * Nickname = "三級",
             * };
             * AssertPlayer(
             * player2,
             * ShogiParserEx.ParsePlayer("三級"));*/
            /*AssertPlayer(
             *  player2,
             *  ShogiParserEx.ParsePlayer(" @ 三級"));*/
            /*AssertPlayer(
             *  player2,
             *  ShogiParserEx.ParsePlayer("三級 三級"));*/
        }
Exemplo n.º 6
0
        public void ParseMoveTest()
        {
            Assert.AreEqual(
                ShogiParserEx.ParseMove("同格", true),
                new LiteralMove
            {
                SameAsOld = true,
                Piece     = Piece.Kaku,
            });

            var gin68 = new LiteralMove
            {
                DstSquare = new Square(6, 8),
                Piece     = Piece.Gin,
            };

            Assert.AreEqual(
                ShogiParserEx.ParseMove("ろっぱち銀", true),
                gin68);
            Assert.AreEqual(
                ShogiParserEx.ParseMove("ロッパチ銀", true),
                gin68);

            Assert.AreEqual(
                ShogiParserEx.ParseMove("46歩", true),
                new LiteralMove
            {
                DstSquare = new Square(4, 6),
                Piece     = Piece.Hu,
            });

            Assert.AreEqual(
                ShogiParserEx.ParseMove("56ふぅ", true),
                new LiteralMove
            {
                DstSquare = new Square(5, 6),
                Piece     = Piece.Hu,
            });
            Assert.AreEqual(
                ShogiParserEx.ParseMove("救急玉", true),
                new LiteralMove
            {
                DstSquare = new Square(9, 9),
                Piece     = Piece.Gyoku,
            });
            Assert.AreEqual(
                ShogiParserEx.ParseMove("燦燦劉", true),
                new LiteralMove
            {
                DstSquare = new Square(3, 3),
                Piece     = Piece.Ryu,
            });
            Assert.AreEqual(
                ShogiParserEx.ParseMove("32RYUU", true),
                new LiteralMove
            {
                DstSquare = new Square(3, 2),
                Piece     = Piece.Ryu,
            });
            Assert.AreEqual(
                ShogiParserEx.ParseMove("32KINN", true),
                new LiteralMove
            {
                DstSquare = new Square(3, 2),
                Piece     = Piece.Kin,
            });
        }
Exemplo n.º 7
0
        public void ParseMoveTest2()
        {
            Assert.AreEqual(
                ShogiParserEx.ParseMove("13馬右", true),
                new LiteralMove
            {
                DstSquare   = new Square(1, 3),
                Piece       = Piece.Uma,
                RelFileType = RelFileType.Right,
            });
            Assert.AreEqual(
                ShogiParserEx.ParseMove("13馬右引く", true),
                new LiteralMove
            {
                DstSquare    = new Square(1, 3),
                Piece        = Piece.Uma,
                RankMoveType = RankMoveType.Back,
                RelFileType  = RelFileType.Right,
            });
            Assert.AreEqual(
                ShogiParserEx.ParseMove("43ほーす左", true),
                new LiteralMove
            {
                DstSquare   = new Square(4, 3),
                Piece       = Piece.Uma,
                RelFileType = RelFileType.Left,
            });

            Assert.AreEqual(
                ShogiParserEx.ParseMove("13不不成り", true),
                new LiteralMove
            {
                DstSquare  = new Square(1, 3),
                Piece      = Piece.Hu,
                ActionType = ActionType.Unpromote,
            });

            Assert.AreEqual(
                ShogiParserEx.ParseMove("55うまごん", true),
                new LiteralMove
            {
                DstSquare = new Square(5, 5),
                Piece     = Piece.Uma,
            });

            Assert.AreEqual(
                ShogiParserEx.ParseMove("39ときんちゃん", true),
                new LiteralMove
            {
                DstSquare = new Square(3, 9),
                Piece     = Piece.To,
            });
            Assert.AreEqual(
                ShogiParserEx.ParseMove("ごよんぽ", true),
                new LiteralMove
            {
                DstSquare = new Square(5, 4),
                Piece     = Piece.Hu,
            });

            Assert.AreEqual(
                ShogiParserEx.ParseMove("シックスナイン不", true),
                new LiteralMove
            {
                DstSquare = new Square(6, 9),
                Piece     = Piece.Hu,
            });

            Assert.AreEqual(
                ShogiParserEx.ParseMove("△6二角行", true),
                new LiteralMove
            {
                Piece        = Piece.Kaku,
                DstSquare    = new Square(6, 2),
                RankMoveType = RankMoveType.Up,
                BWType       = BWType.White,
            });
        }