Esempio n. 1
0
        public static void Setumei(TobikikiDirection kikiDir, StringBuilder hyoji)
        {
            OjamaBanSyurui ojamaBanSyurui = Conv_TobikikiDirection.ojamaBanSyuruiItiran[(int)kikiDir];

            switch (kikiDir)
            {
            case TobikikiDirection.KT:
            case TobikikiDirection.S:
            {
                OjamaBan.YomiOjamaBan yomiOjamaBan = PureMemory.gky_ky.yomiKy.yomiShogiban.GetYomiOjamaBan(ojamaBanSyurui);
                int dLen = PureSettei.banYokoHaba;

                hyoji.AppendLine("90°回転");
                int iMs = 0;
                for (int d = 0; d < dLen; d++)
                {
                    int haba = Util_Tobikiki.GetNanameDanHaba(d, kikiDir);

                    for (int x = 0; x < haba; x++)
                    {
                        hyoji.Append(yomiOjamaBan.ExistsBB((Masu)iMs) ? "〇" : "・");
                        iMs++;
                    }
                    hyoji.AppendLine();
                }
            }
            break;

            case TobikikiDirection.KY:
            case TobikikiDirection.None:
            {
                // お邪魔盤は無いので、将棋盤から取ってくる
                Bitboard bb_shogi = PureMemory.gky_ky.yomiKy.yomiShogiban.yomiIbashoBan.CloneKomaZenbuBothTai();

                Setumei_yk00("回転なし", bb_shogi, hyoji);
            }
            break;

            case TobikikiDirection.ZHa:
            case TobikikiDirection.ZHs:
            {
                OjamaBan.YomiOjamaBan yomiOjamaBan = PureMemory.gky_ky.yomiKy.yomiShogiban.GetYomiOjamaBan(ojamaBanSyurui);

                hyoji.AppendLine("45°回転");
                ScanAndHyojiHisigata((Masu ms) =>
                    {
                        return(yomiOjamaBan.ExistsBB(ms) ? "〇" : "・");
                    },
                                     kikiDir, hyoji);
            }
            break;
            }
        }
Esempio n. 2
0
        public static void Setumei_yk00(string header, Bitboard bb, StringBuilder hyoji)
        {
            if (header != "")
            {
                hyoji.AppendLine(header);
            }
            int dLen = PureSettei.banTateHaba;

            int iMs = 0;

            for (int d = 0; d < dLen; d++)
            {
                int haba = Util_Tobikiki.GetNanameDanHaba(d, TobikikiDirection.KY);

                for (int x = 0; x < haba; x++)
                {
                    hyoji.Append(bb.IsOn((Masu)iMs) ? "〇" : "・");
                    iMs++;
                }
                hyoji.AppendLine();
            }
        }
Esempio n. 3
0
        public static void ScanAndHyojiHisigata(
            DLGT_DrawMasu dlgt_DrawMasu,
            TobikikiDirection kikiDir, StringBuilder hyoji)
        {
            int dLen = PureSettei.banNanameDanLen;

            // 最大幅を算出
            int maxHaba = 0;

            for (int d = 0; d < dLen; d++)
            {
                int haba = Util_Tobikiki.GetNanameDanHaba(d, kikiDir);
                maxHaba = Math.Max(haba, maxHaba);
            }

            //hyoji.AppendLine("ひし形表示");
            int iMs = 0;

            for (int d = 0; d < dLen; d++)
            {
                int haba = Util_Tobikiki.GetNanameDanHaba(d, kikiDir);

                // インデント
                for (int i = maxHaba - haba; 0 < i; i--)
                {
                    hyoji.Append(" ");
                }

                for (int x = 0; x < haba; x++)
                {
                    hyoji.Append(dlgt_DrawMasu((Masu)iMs));
                    iMs++;
                }
                hyoji.AppendLine();
            }

            hyoji.AppendLine();
        }