Beispiel #1
0
        public static Move TryFenMove2(
            bool isSfen,
            Kyokumen.Sindanyo kys,
            string str1,
            string str2,
            string str3,
            string str4,
            string str5
            )
        {
            int dstSuji = FenSuji_Int(isSfen, str3); // 至筋
            int dstDan  = FenDan_Int(isSfen, str4);  // 至段

            // 取った駒を調べるぜ☆(^▽^)
            Masu dstMs = Conv_Masu.ToMasu(dstSuji, dstDan);


            //------------------------------
            // 5
            //------------------------------
            bool natta = false;

            if ("+" == str5)
            {
                // 成りました
                natta = true;
            }


            //------------------------------
            // 結果
            //------------------------------
            if ("*" == str2)
            {
                // 駒台から打ったぜ☆
                return(ConvMove.ToMove01cUtta(
                           dstMs,
                           Med_Parser.Moji_MotikomaSyurui(isSfen, str1)//打った駒
                           ));
            }
            else
            {
                // 盤上の駒を動かしたぜ☆
                if (natta)
                {
                    return(ConvMove.ToMove01bNariSasi(Med_Parser.FenSujiDan_Masu(isSfen, str1, str2), dstMs, kys));
                }
                else
                {
                    return(ConvMove.ToMove01aNarazuSasi(Med_Parser.FenSujiDan_Masu(isSfen, str1, str2), dstMs, kys));
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// 2017-04-19 作成
        /// </summary>
        /// <param name="commandline"></param>
        /// <param name="caret"></param>
        /// <param name="out_ms"></param>
        /// <returns></returns>
        public static bool TryParseMs(bool isSfen, string commandline, Kyokumen ky, ref int caret, out Masu out_ms)
        {
            Match m = Itiran_FenParser.GetMasuPattern(isSfen).Match(commandline, caret);

            if (m.Success)
            {
                Util_String.SkipMatch(commandline, ref caret, m);

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

                out_ms = Conv_Masu.ToMasu(suji, dan);
                return(true);
            }
            else
            {
                out_ms = ky.MASU_ERROR;
                return(false);
            }
        }
Beispiel #3
0
 /// <summary>
 /// A1 を 0 に。
 /// </summary>
 /// <param name="isSfen"></param>
 /// <param name="suji"></param>
 /// <param name="dan"></param>
 /// <returns></returns>
 public static Masu FenSujiDan_Masu(bool isSfen, string suji, string dan)
 {
     return(Conv_Masu.ToMasu(FenSuji_Int(isSfen, suji), FenDan_Int(isSfen, dan)));
 }