private static void Log1( Node <IMove, KyokumenWrapper> hubNode, int temezumi_yomiGenTeban, string hint ) { bool enableLog = false;//logTag.Logger.Enable Util_GraphicalLog.WriteHtml5( enableLog, "Util_LegalMove(王手回避漏れ02)王手を回避するかどうかに関わらず、ひとまず全ての次の手", "[" + ((KifuNode)hubNode).Json_NextNodes_MultiSky( $"(王手回避漏れ02.{temezumi_yomiGenTeban}手目)", $"{hint}_Lv3_RMHO", temezumi_yomiGenTeban) + "]");// ログ出力 }
/// <summary> /// a - b = c /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <param name="sbGohosyu"></param> public static Maps_OneAndOne <Finger, SySet <SyElement> > Minus_OverThereMasus( SkyConst src_srcSky_forLog, Maps_OneAndOne <Finger, SySet <SyElement> > a, SySet <SyElement> b ) { Maps_OneAndOne <Finger, SySet <SyElement> > c = new Maps_OneAndOne <Finger, SySet <SyElement> >(a); bool enableLog = false; //if (null != errH_orNull) //{ // enableLog = errH_orNull.Logger.Enable; //} foreach (Finger selfKoma in c.ToKeyList())//調べたい側の全駒 { SySet <SyElement> srcMasus = c.ElementAt(selfKoma); // a -overThere b するぜ☆ Util_GraphicalLog.WriteHtml5(enableLog, "Thought_KomaAndMove Minus_OverThereMasus1", $@"[ [ {Util_FormatJson_LogGraphicEx.JsonElements_Masus(enableLog, srcMasus, "(1)引く前")} ], ], " ); SySet <SyElement> minusedMasus = srcMasus.Clone(); minusedMasus.MinusMe_Opened(b, Util_SyElement_BinaryOperator.Dlgt_Equals_MasuNumber); // 差替え c.AddReplace(selfKoma, minusedMasus, false);//差分に差替えます。もともと無い駒なら何もしません。 } Util_GraphicalLog.WriteHtml5(enableLog, "Thought_KomaAndMove Minus_OverThereMasus2", $@"[ [ {Util_FormatJson_LogGraphicEx.JsonKyokumens_MultiKomabetuMasus(enableLog, src_srcSky_forLog, a, "(1)a")}{Util_FormatJson_LogGraphicEx.JsonElements_Masus(enableLog, b, "(2)-overThere_b")}{Util_FormatJson_LogGraphicEx.JsonKyokumens_MultiKomabetuMasus(enableLog, src_srcSky_forLog, c, "(3)=c")} ], ], " ); return(c); }
/// <summary> /// 棋譜ツリー・ログの書出し /// /// TODO: フォルダーパスが長く成りすぎるのを、なんとかしたい。折り返すとか、~中略~にするとか、rootから始めないとか。 /// </summary> public static void A_Write_KifuTreeLog( KaisetuBoards logF_kiki, KifuTree kifu ) { #if DEBUG int logFileCounter = 0; //---------------------------------------- // 既存の棋譜ツリー・ログを空に。 //---------------------------------------- { string rootFolder = Path.Combine(Util_KifuTreeLogWriter.REPORT_ENVIRONMENT.OutFolder, ConvMoveStrSfen.KIFU_TREE_LOG_ROOT_FOLDER); if (Directory.Exists(rootFolder)) { try { Directory.Delete(rootFolder, true); } catch (IOException) { // ディレクトリーが空でなくて、ディレクトリーを削除できなかったときに // ここにくるが、 // ディレクトリーの中は空っぽにできていたりする。 // // とりあえず続行。 } } } //---------------------------------------- // カレントノードまでの符号を使って、フォルダーパスを作成。 //---------------------------------------- StringBuilder tree_folder = new StringBuilder(); kifu.ForeachHonpu(kifu.CurNode, (int temezumi2, KyokumenWrapper kWrap, Node <IMove, KyokumenWrapper> node, ref bool toBreak) => { tree_folder.Append($"{ConvMoveStrSfen.ToMoveStrSfenForFilename(node.Key)}/"); }); //sb_folder.Append( $"{Conv_MoveStr_Sfen.ToMoveStr_Sfen_ForFilename(kifu.CurNode.Key)}/"); string moveText1 = ConvMoveStrSfen.ToMoveStrSfen(kifu.CurNode.Key); KifuNode kifuNode1 = (KifuNode)kifu.CurNode; // 評価明細のログ出力。 Util_KifuTreeLogWriter.AA_Write_ForeachLeafs_ForDebug( ref logFileCounter, moveText1, kifuNode1, kifu, tree_folder.ToString(), Util_KifuTreeLogWriter.REPORT_ENVIRONMENT ); if (0 < logF_kiki.boards.Count) //ログが残っているなら { bool enableLog = true; // false; // // ログの書き出し // Util_GraphicalLog.WriteHtml5( enableLog, "#評価ログ", $"[{Conv_KaisetuBoards.ToJsonStr(logF_kiki)}]" ); // 書き出した分はクリアーします。 logF_kiki.boards.Clear(); } #endif }