コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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);
        }