Пример #1
0
        /// <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
        }