Esempio n. 1
0
        /// <summary>
        /// 駒を打った指し手☆(^▽^)
        /// 空き升に打ち込む前提だぜ☆(^~^)!
        /// </summary>
        /// <param name="ms_dst"></param>
        /// <param name="mkUtta"></param>
        /// <param name="natta"></param>
        /// <returns></returns>
        public static Move ToMove01cUtta(Masu ms_dst, MotigomaSyurui mkUtta)
        {
            Debug.Assert(MotigomaSyurui.Yososu != mkUtta, "");

            // バリュー
            int v = 0;

            // 元筋と元段☆(^▽^)「打」のときは何もしないぜ☆(^▽^)

            // 先筋と先段☆(^▽^)
            AbstractConvMove.SetDstMasu_WithoutErrorCheck(ref v, ms_dst);


            //必ず指定されているはず☆ if (MotiKomasyurui.Yososu != mkUtta)
            {
                // 変換(列挙型→ビット)
                // ぞう 0 → 1
                // きりん 1 → 2
                // ひよこ 2 → 3
                // ~中略~
                // いのしし 6 → 7
                // なし 7 → 0
                // 1 足して 8 で割った余り☆
                v |= (((int)mkUtta + 1) % Conv_MotigomaSyurui.SETS_LENGTH) << (int)MoveShift.UTTA_KOMASYURUI;
            }

            // 打ったときは成れないぜ☆(^▽^)

            return((Move)v);
        }
Esempio n. 2
0
 public static bool IsUtta(Move ss)
 {
     // 打か☆?
     return(MotigomaSyurui.Yososu != AbstractConvMove.GetUttaKomasyurui(ss));//指定があれば
 }