/// <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); }
public static bool IsUtta(Move ss) { // 打か☆? return(MotigomaSyurui.Yososu != AbstractConvMove.GetUttaKomasyurui(ss));//指定があれば }