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; } }
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(); } }
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(); }