/// <summary> /// 駒別の居場所 /// </summary> /// <param name="hyoji"></param> static void AppendKomaBetuIbashoTo(IbashoBan.YomiIbashoBan yomiIbashoBan, StringBuilder hyoji) { hyoji.AppendLine("駒別の居場所"); foreach (Taikyokusya tai in Conv_Taikyokusya.itiran)// 対局者1、対局者2 { // 駒別 foreach (Piece km_tai in Conv_Koma.itiranTai[(int)tai]) { hyoji.Append(SpkBanWaku.CutHeaderBanWidthZenkaku(Conv_Koma.GetName(km_tai))); } hyoji.AppendLine(); // 盤 YomiBitboard[] bbHairetu = new YomiBitboard[Conv_Komasyurui.itiran.Length]; int i = 0; foreach (Komasyurui ks in Conv_Komasyurui.itiran) { bbHairetu[i] = yomiIbashoBan.GetKoma(Med_Koma.KomasyuruiAndTaikyokusyaToKoma(ks, tai)); i++; } SpkBan_MultiColumn.Setumei_Bitboard(null, bbHairetu, " 〇 ", " ", hyoji); } }
/// <summary> /// 駒の利き数☆(^~^) /// 対局者別と、駒別 /// </summary> /// <returns></returns> public static void HyojiKomanoKikiSu(KikiBan.YomiKikiBan yomiKikiBan, StringBuilder hyoji) { hyoji.AppendLine("重ね利き数全部"); hyoji.AppendLine(string.Format("差分更新トータル ▲{0} △{1}", yomiKikiBan.CountKikisuTotalZenbu(Taikyokusya.T1), yomiKikiBan.CountKikisuTotalZenbu(Taikyokusya.T2))); // 対局者別 全部 { // 見出し SpkBanWaku.Setumei_Headers(Conv_Taikyokusya.namaeItiran, hyoji); SpkBanWaku.AppendLine_TopBar(Conv_Taikyokusya.itiran.Length, PureSettei.banYokoHaba, hyoji); // ┌──┬──┬──┐みたいな線☆ for (int dan = 0; dan < PureSettei.banTateHaba; dan++) { // データ表示 SpkBanWaku.AppendLine_Record_Cell4Hankakus1( (Taikyokusya tai, Masu ms) => { int kikisuZenbu = yomiKikiBan.CountKikisuZenbu(tai, ms); return(0 < kikisuZenbu ? string.Format(" {0,2} ", kikisuZenbu) : " "); }, dan, hyoji ); if (dan + 1 < PureSettei.banTateHaba) { SpkBanWaku.AppendLine_MiddleBar(Conv_Taikyokusya.itiran.Length, PureSettei.banYokoHaba, hyoji); // ├──┼──┼──┤みたいな線☆ } } SpkBanWaku.AppendLine_BottomBar(Conv_Taikyokusya.itiran.Length, PureSettei.banYokoHaba, hyoji); // └──┴──┴──┘みたいな線☆ } // 駒別 foreach (Taikyokusya tai in Conv_Taikyokusya.itiran) // 対局者1、対局者2 { foreach (Piece km_tai in Conv_Koma.itiranTai[(int)tai]) { hyoji.Append(SpkBanWaku.CutHeaderBanWidthZenkaku(Conv_Koma.GetName(km_tai))); } hyoji.AppendLine(); SpkBanWaku.AppendLine_TopBar(Conv_Komasyurui.itiran.Length, PureSettei.banYokoHaba, hyoji); for (int dan = 0; dan < PureSettei.banTateHaba; dan++) { SpkBanWaku.AppendLine_Record_Cell4Hankakus3( (Taikyokusya tai1, Komasyurui ks, Masu ms) => { int kikisuKomabetu = yomiKikiBan.CountKikisuKomabetu(Med_Koma.KomasyuruiAndTaikyokusyaToKoma(ks, tai1), ms); return(0 < kikisuKomabetu ? string.Format(" {0,2} ", kikisuKomabetu) : " "); }, tai, dan, hyoji); if (dan + 1 < PureSettei.banTateHaba) { SpkBanWaku.AppendLine_MiddleBar(Conv_Komasyurui.itiran.Length, PureSettei.banYokoHaba, hyoji); } } SpkBanWaku.AppendLine_BottomBar(Conv_Komasyurui.itiran.Length, PureSettei.banYokoHaba, hyoji); } }