static Med_Koma() { komasyuruiNamaeItiran = new string[Conv_Taikyokusya.AllOptionalPhaseList.Length][]; for (int iTai = 0; iTai < Conv_Taikyokusya.AllOptionalPhaseList.Length; iTai++) { komasyuruiNamaeItiran[iTai] = new string[Conv_Komasyurui.Itiran.Length]; int iKs = 0; foreach (Koma km in Conv_Koma.ItiranTai[(int)iTai]) { komasyuruiNamaeItiran[iTai][iKs] = Conv_Koma.GetName(km); iKs++; } } }
/// <summary> /// 駒の利き数☆(^~^) /// </summary> /// <returns></returns> public static void HyojiKomanoKikiSu(Shogiban shogiban, StringBuilder syuturyoku) { //, KikisuKomabetuCountboardItiran kikiKomabetuCB // KikisuZenbuCountboardItiran kikiZenbuCB syuturyoku.AppendLine("重ね利き数全部"); // 対局者別 全部 { // 見出し Setumei_Headers(Conv_Taikyokusya.NamaeItiran, syuturyoku); Util_Information.AppendLine_Top_Kyokumen(Conv_Taikyokusya.AllOptionalPhaseList.Length, syuturyoku); // ┌──┬──┬──┐みたいな線☆ for (int dan = 0; dan < Option_Application.Optionlist.BanTateHaba; dan++) { AppendLine_Data_Countboard(shogiban, dan * Option_Application.Optionlist.BanYokoHaba, syuturyoku); if (dan + 1 < Option_Application.Optionlist.BanTateHaba) { Util_Information.AppendLine_Middle(Conv_Taikyokusya.AllOptionalPhaseList.Length, syuturyoku); // ├──┼──┼──┤みたいな線☆ } } Util_Information.AppendLine_Bottom(Conv_Taikyokusya.AllOptionalPhaseList.Length, syuturyoku); // └──┴──┴──┘みたいな線☆ } // 駒別 foreach (var optionalPhase29 in Conv_Taikyokusya.AllOptionalPhaseList) // 対局者1、対局者2 { foreach (Koma km in Conv_Koma.ItiranTai[OptionalPhase.IndexOf(optionalPhase29)]) { syuturyoku.Append(Util_Information.FormatBanWidthZenkaku(Conv_Koma.GetName(km))); } syuturyoku.AppendLine(); Util_Information.AppendLine_Top_Kyokumen(Conv_Komasyurui.Itiran.Length, syuturyoku); for (int dan = 0; dan < Option_Application.Optionlist.BanTateHaba; dan++) { AppendLine_Data_Countboard(optionalPhase29, shogiban, dan * Option_Application.Optionlist.BanYokoHaba, syuturyoku); if (dan + 1 < Option_Application.Optionlist.BanTateHaba) { Util_Information.AppendLine_Middle(Conv_Komasyurui.Itiran.Length, syuturyoku); } } Util_Information.AppendLine_Bottom(Conv_Komasyurui.Itiran.Length, syuturyoku); } }
/// <summary> /// 駒の居場所 /// </summary> /// <param name="syuturyoku"></param> public static void HyojiKomanoIbasho(Shogiban shogiban, StringBuilder syuturyoku) { //IbasyoKomabetuBitboardItiran bb_koma, // KomaZenbuIbasyoBitboardItiran bb_komaZenbu syuturyoku.AppendLine("駒の居場所"); // 駒全部☆ { Setumei_Bitboards(new string[] { "対局者1", "対局者2" }, new Bitboard[] { shogiban.GetBBKomaZenbu(OptionalPhase.Black), shogiban.GetBBKomaZenbu(OptionalPhase.White) }, syuturyoku); syuturyoku.AppendLine(); } foreach (var optionalPhase81 in Conv_Taikyokusya.AllOptionalPhaseList)// 対局者1、対局者2 { // 見出し foreach (Koma km in Conv_Koma.ItiranTai[OptionalPhase.IndexOf(optionalPhase81)]) { syuturyoku.Append(FormatBanWidthZenkaku(Conv_Koma.GetName(km))); } syuturyoku.AppendLine(); // 盤 Bitboard[] bbHairetu = new Bitboard[Conv_Komasyurui.Itiran.Length]; int i = 0; foreach (Komasyurui ks in Conv_Komasyurui.Itiran) { bbHairetu[i] = shogiban.GetBBKoma(Med_Koma.KomasyuruiAndTaikyokusyaToKoma(ks, optionalPhase81)); i++; } Setumei_Bitboards(bbHairetu, syuturyoku); } }