/// <summary> /// 用途例:持ち駒を確認するために使います。 /// </summary> /// <param name="hkomas_gen_MOTI"></param> /// <returns></returns> public static string JsonElements_KomaHandles(bool enableLog, SkyConst src_Sky, List <int> hKomas, string comment) { StringBuilder sb = new StringBuilder(); if (!enableLog) { goto gt_EndMethod; } //sb.AppendLine(" ["); sb.AppendLine(" { act:\"colorMasu\", style:\"rgba(100,240,100,0.5)\" },"); foreach (int hKoma in hKomas) { RO_Star koma = Util_Starlightable.AsKoma(src_Sky.StarlightIndexOf(hKoma).Now); string komaImg = Util_Converter_LogGraphicEx.Finger_ToString(src_Sky, hKoma, ""); sb.AppendLine($" {{ act:\"drawImg\", img:\"{komaImg}\", masu: {Conv_SyElement.ToMasuNumber(koma.Masu)} }},");//FIXME:おかしい? } sb.AppendLine($" {{ act:\"drawText\", text:\"{comment}\" , x:0, y:20 }},"); //sb.AppendLine(" ],"); gt_EndMethod: return(sb.ToString()); }
/// <summary> /// ハブ・ノードの次ノード・リストをJSON化します。 /// </summary> /// <param name="enableLog"></param> /// <param name="src_Sky_base"></param> /// <param name="hubNode"></param> /// <param name="comment"></param> /// <param name="logTag"></param> /// <returns></returns> public static string JsonKyokumens_NextNodes(bool enableLog, SkyConst src_Sky_base, Node <IMove, KyokumenWrapper> hubNode, string comment) { StringBuilder sb = new StringBuilder(); if (!enableLog) { goto gt_EndMethod; } hubNode.Foreach_ChildNodes((string key, Node <IMove, KyokumenWrapper> node, ref bool toBreak) => { IMove move = node.Key; RO_Star srcKoma1 = Util_Starlightable.AsKoma(move.LongTimeAgo); RO_Star dstKoma = Util_Starlightable.AsKoma(move.Now); Finger srcKoma2 = Util_Sky_FingersQuery.InMasuNow(src_Sky_base, srcKoma1.Masu).ToFirst(); // 駒1つ PieceType ks14 = Util_Komahaiyaku184.Syurui(dstKoma.Haiyaku); sb.AppendLine(" ["); // マスの色 sb.AppendLine(" { act:\"colorMasu\", style:\"rgba(100,240,100,0.5)\" },"); // マス sb.AppendLine($" {{ act:\"drawMasu\" , masu:{Conv_SyElement.ToMasuNumber(dstKoma.Masu)} }},"); string komaImg = Util_Converter_LogGraphicEx.Finger_ToString(src_Sky_base, srcKoma2, ""); sb.AppendLine($" {{ act:\"drawImg\", img:\"{komaImg}\", masu: {Conv_SyElement.ToMasuNumber(dstKoma.Masu)} }},");//FIXME:おかしい? // コメント sb.AppendLine($" {{ act:\"drawText\", text:\"{comment}\" , x:0, y:20 }},"); sb.AppendLine(" ],"); }); gt_EndMethod: return(sb.ToString()); }
/// <summary> /// 駒別マスをJSON化します。 /// </summary> /// <param name="enableLog"></param> /// <param name="src_Sky_base"></param> /// <param name="km_move"></param> /// <param name="comment"></param> /// <returns></returns> public static string JsonKyokumens_MultiKomabetuMasus(bool enableLog, SkyConst src_Sky_base, Maps_OneAndOne <Finger, SySet <SyElement> > km_move, string comment) { StringBuilder sb = new StringBuilder(); if (!enableLog) { goto gt_EndMethod; } km_move.Foreach_Entry((Finger key, SySet <SyElement> value, ref bool toBreak) => { // 駒1つ RO_Star koma = Util_Starlightable.AsKoma(src_Sky_base.StarlightIndexOf(key).Now); PieceType ks14 = Util_Komahaiyaku184.Syurui(koma.Haiyaku); sb.AppendLine(" ["); // マスの色 sb.AppendLine(" { act:\"colorMasu\", style:\"rgba(100,240,100,0.5)\" },"); // 全マス foreach (New_Basho masu in value.Elements) { sb.AppendLine($" {{ act:\"drawMasu\" , masu:{masu.MasuNumber} }},"); } string komaImg = Util_Converter_LogGraphicEx.Finger_ToString(src_Sky_base, key, ""); sb.AppendLine($" {{ act:\"drawImg\", img:\"{komaImg}\", masu: {Conv_SyElement.ToMasuNumber(koma.Masu)} }},");//FIXME:おかしい? // コメント sb.AppendLine($" {{ act:\"drawText\", text:\"{comment}\" , x:0, y:20 }},"); sb.AppendLine(" ],"); }); gt_EndMethod: return(sb.ToString()); }