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)); } } }
/// <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); } }
/// <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))); }