Example #1
0
        /// <summary>
        /// 2017-04-19 作成
        ///
        /// パースに失敗してもエラーではない。
        /// </summary>
        /// <param name="line"></param>
        /// <param name="caret"></param>
        /// <param name="out_ms"></param>
        /// <returns></returns>
        public static bool MatchMasu
            (string line, ref int caret, out Masu out_ms
#if DEBUG
            , IDebugMojiretu dbg_reigai
#endif
            )
        {
            Match m = Itiran_FenParser.GetMasuPattern(PureSettei.fenSyurui).Match(line, caret);

            if (m.Success)
            {
                // キャレットを進める
                Util_String.SkipMatch(line, ref caret, m);

                int suji = LisInt.FenSuji_Int(PureSettei.fenSyurui, m.Groups[1].Value);
                int dan  = LisInt.FenDan_Int(PureSettei.fenSyurui, m.Groups[2].Value);

                // 升を返す
                out_ms = Conv_Masu.ToMasu(suji, dan);

                return(true);
            }
            else
            {
                // 該当なし(エラーではない)
                out_ms = Conv_Masu.masu_error;
                return(false);
            }
        }
Example #2
0
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="out_restString"></param>
        ///// <param name="commandline">B3といった文字列☆</param>
        ///// <returns></returns>
        //public static bool TryParseMs(
        //    string commandline,
        //    Kyokumen ky,
        //    ref int caret,
        //    out Masu result
        //)
        //{
        //    //「B4」形式と想定
        //    // テキスト形式の符号「A4 …」の最初の1要素を、切り取ってトークンに分解します。

        //    //------------------------------------------------------------
        //    // リスト作成
        //    //------------------------------------------------------------

        //    Match m = Itiran_FenParser.GetMasuMovePattern(Option_Application.Optionlist.USI).Match(commandline, caret);
        //    if (m.Success)
        //    {
        //        Util_String.SkipMatch(commandline, ref caret, m);

        //        // 符号1「B4」を元に、Masu を作ります。

        //        // 盤上の駒を動かしたぜ☆
        //        result = Med_Parser.FenSujiDan_Masu(
        //            Option_Application.Optionlist.USI,
        //            m.Groups[1].Value, //ABCabc か、 ZKH
        //            m.Groups[2].Value //1234   か、 *
        //            );
        //        return true;
        //    }

        //    // 「B4B3」形式ではなかった☆(^△^)!? 次の一手が読めない☆
        //    result = ky.MASU_ERROR;
        //    return false;
        //}

        /// <summary>
        /// A1 を 0 に。
        /// </summary>
        /// <param name="f"></param>
        /// <param name="suji"></param>
        /// <param name="dan"></param>
        /// <returns></returns>
        public static Masu FenSujiDan_Masu(FenSyurui f, string suji, string dan)
        {
            return(Conv_Masu.ToMasu(LisInt.FenSuji_Int(f, suji), LisInt.FenDan_Int(f, dan)));
        }