/// <summary> /// コンピューター思考中表示☆(^~^) /// </summary> public static void Speak_ComputerSikochu(StringBuilder hyoji) { #if DEBUG hyoji.Append("**デバッグ・モード** ");//注意喚起☆(^▽^) #endif SpkTaikyokusya.AppendSetumeiName(PureMemory.kifu_teban, hyoji); hyoji.Append("("); hyoji.Append(PureSettei.char_playerN[PureMemory.kifu_nTeban].ToString()); hyoji.Append(")の思考中(^~^)"); }
/// <summary> /// 汎用 /// </summary> /// <returns></returns> static void Setumei_Hanyo( DLGT_dataBu dlgt_dataBu, int banYokoHaba_tmp, int banTateHaba_tmp, int teme, StringBuilder hyoji ) { #region 盤の上の方 // 2行目 { // 何手目 hyoji.Append(string.Format("図は{0,3}手まで ", teme)); // 手番 SpkTaikyokusya.AppendSetumeiName(PureMemory.GetTebanByTeme(teme), hyoji); hyoji.Append("の番"); hyoji.AppendLine(); } // 3行目 後手の持ち駒 { // 後手の持ち駒の数 foreach (MotigomaSyurui mks in Conv_MotigomaSyurui.itiran) { Motigoma mk = Med_Koma.MotiKomasyuruiAndTaikyokusyaToMotiKoma(mks, Taikyokusya.T2); if (PureMemory.gky_ky.yomiKy.yomiMotigomaItiran.HasMotigoma(mk)) { hyoji.Append(Conv_MotigomaSyurui.GetHyojiName(mks)); hyoji.Append(PureMemory.gky_ky.yomiKy.yomiMotigomaItiran.Count(mk).ToString()); } } hyoji.AppendLine(); } // 4行目 { // A B C D とか hyoji.Append(" "); SpkBanWaku.AppendLine_SujiFugo(banYokoHaba_tmp, hyoji); } // 5行目 { hyoji.Append(" "); SpkBanWaku.AppendLine_TopBar(1, PureSettei.banYokoHaba, hyoji); // ┌──┬──┬──┐ } #endregion // 5行目~13行目 // 盤上 for (int dan = 0; dan < PureSettei.banTateHaba; dan++) { // 6,8,10,12行目 hyoji.Append(Conv_Kihon.ToZenkakuInteger(dan + 1)); SpkBanWaku.AppendLine_Record_Cell4Hankakus2( (Masu ms) => { return(dlgt_dataBu(dan, ms)); }, dan, banYokoHaba_tmp, hyoji); if (dan + 1 < PureSettei.banTateHaba) { // 7,9,11行目 hyoji.Append(" "); SpkBanWaku.AppendLine_MiddleBar(1, PureSettei.banYokoHaba, hyoji);//├──┼──┼──┤ } } #region 盤の下の方 // 13行目 { hyoji.Append(" "); SpkBanWaku.AppendLine_BottomBar(1, PureSettei.banYokoHaba, hyoji);//└──┴──┴──┘ } // 先手の持ち駒の数 { foreach (MotigomaSyurui mks in Conv_MotigomaSyurui.itiran) { Motigoma mk = Med_Koma.MotiKomasyuruiAndTaikyokusyaToMotiKoma(mks, Taikyokusya.T1); if (PureMemory.gky_ky.yomiKy.yomiMotigomaItiran.HasMotigoma(mk)) { hyoji.Append(Conv_MotigomaSyurui.GetHyojiName(mks)); hyoji.Append(PureMemory.gky_ky.yomiKy.yomiMotigomaItiran.Count(mk).ToString()); } } hyoji.AppendLine(); } #endregion }
/// <summary> /// 改造Fen /// 例: fen kr1/1h1/1H1/1R1 K2z 1 /// 盤上の駒配置、持ち駒の数、手番の対局者 /// </summary> public static void AppendFenTo( FenSyurui f, StringBuilder syuturyoku) { syuturyoku.Append(f == FenSyurui.sfe_n ? "sfen " : "fen "); // 盤上 { int space = 0; for (int iDan = 0; iDan < PureSettei.banTateHaba; iDan++) { for (int iSuji = 0; iSuji < PureSettei.banYokoHaba; iSuji++) { Masu ms = (Masu)(iDan * PureSettei.banYokoHaba + iSuji); Taikyokusya tai; if (PureMemory.gky_ky.yomiKy.yomiShogiban.yomiIbashoBan.ExistsKomaZenbu(ms, out tai)) { if (0 < space) { syuturyoku.Append(space.ToString()); space = 0; } Komasyurui ks; PureMemory.gky_ky.yomiKy.yomiShogiban.yomiIbashoBan.ExistsKoma(tai, ms, out ks); SpkKoma.AppendFenTo(f, Med_Koma.KomasyuruiAndTaikyokusyaToKoma(ks, tai), syuturyoku); } else { space++; } } if (0 < space) { syuturyoku.Append(space.ToString()); space = 0; } if (iDan + 1 < PureSettei.banTateHaba) { syuturyoku.Append("/"); } } } syuturyoku.Append(" "); // 持駒 if (PureMemory.gky_ky.yomiKy.yomiMotigomaItiran.IsEmpty()) { syuturyoku.Append("-"); } else { for (int iMk = 0; iMk < Conv_Motigoma.itiran.Length; iMk++) { int cnt = PureMemory.gky_ky.yomiKy.yomiMotigomaItiran.Count((Motigoma)iMk); if (0 < cnt) { syuturyoku.Append( cnt == 1 ? SpkMotiKoma.GetFen(f, (Motigoma)iMk)// 1個の時は数字は付かないぜ☆(^~^) : cnt.ToString() + SpkMotiKoma.GetFen(f, (Motigoma)iMk) ); } } } // 手番 syuturyoku.Append(" "); syuturyoku.Append(SpkTaikyokusya.ToFen(f, PureMemory.kifu_teban)); //// moves //if (syuturyokuMoves) //{ //} }