/// <summary> /// 手番と、 /// 駒の種類と、その升、 /// この3つを指定すると、利きを表にして返すぜ☆(^▽^) /// </summary> /// <param name="tai"></param> /// <param name="targetMs"></param> /// <param name="ks"></param> /// <param name="attackerMs"></param> /// <returns></returns> public static bool[] Kiki(Koma km, Masu attackerMs, Kyokumen.Sindanyo kys, Shogiban shogiban)//KomanoUgokikata komanoUgokikata { bool[] kiki = new bool[kys.MASU_YOSOSU]; // 盤上 for (int iDan = 0; iDan < Option_Application.Optionlist.BanTateHaba; iDan++) { for (int iSuji = 0; iSuji < Option_Application.Optionlist.BanYokoHaba; iSuji++) { kiki[iDan * Option_Application.Optionlist.BanYokoHaba + iSuji] = Util_HiouteCase.IsLegalMove(km, (Masu)(iDan * Option_Application.Optionlist.BanYokoHaba + iSuji), attackerMs, shogiban); } } return(kiki); }
public static Bitboard Kiki_BB(Koma km, Masu attackerMs, Shogiban shogiban) { Bitboard kiki = new Bitboard(); // 盤上 for (int iDan = 0; iDan < Option_Application.Optionlist.BanTateHaba; iDan++) { for (int iSuji = 0; iSuji < Option_Application.Optionlist.BanYokoHaba; iSuji++) { if (Util_HiouteCase.IsLegalMove(km, (Masu)(iDan * Option_Application.Optionlist.BanYokoHaba + iSuji), attackerMs, shogiban)) { kiki.Standup((Masu)(iDan * Option_Application.Optionlist.BanYokoHaba + iSuji)); } } } return(kiki); }