コード例 #1
0
        /// <summary>
        /// 盤上の駒を指したぜ☆(^▽^)(打つ以外の指し手☆)
        ///
        /// 指し手に、取った駒を記録するのは止めるぜ☆(^~^)局面データの方に入れておこう☆(^▽^)
        /// </summary>
        /// <param name="ms_src"></param>
        /// <param name="ms_dst"></param>
        /// <param name="natta"></param>
        /// <returns></returns>
        public static Move ToMove01aNarazuSasi(Masu ms_src, Masu ms_dst, Kyokumen.Sindanyo kys)
        {
            Debug.Assert(kys.IsBanjoOrError(ms_src), $"ms_src=[{ms_src}] kys.MASUS=[{kys.MASU_YOSOSU}]");
            Debug.Assert(kys.IsBanjo(ms_dst), "盤外に指したぜ☆?");

            // バリュー
            int v = 0;

            // 筋と段☆(^▽^)盤外なら 0 だぜ☆(^▽^)
            SetSrcMasu_WithoutErrorCheck(ref v, ms_src);

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

            SetDstMasu_WithoutErrorCheck(ref v, ms_dst);

            // 打った駒なし

            // 成らない☆(^▽^)

            return((Move)v);
        }
コード例 #2
0
        /// <summary>
        /// 盤上の駒を指したぜ☆(^▽^)(打つ以外の指し手☆)
        ///
        /// 指し手に、取った駒を記録するのは止めるぜ☆(^~^)局面データの方に入れておこう☆(^▽^)
        /// </summary>
        /// <param name="ms_src"></param>
        /// <param name="ms_dst"></param>
        /// <param name="natta"></param>
        /// <returns></returns>
        public static Move ToMove01bNariSasi(Masu ms_src, Masu ms_dst, Kyokumen.Sindanyo kys)
        {
            Debug.Assert(kys.IsBanjoOrError(ms_src), "");
            Debug.Assert(kys.IsBanjo(ms_dst), "盤外に指したぜ☆?");

            // バリュー
            int v = 0;

            // 筋と段☆(^▽^)盤外なら 0 だぜ☆(^▽^)
            SetSrcMasu_WithoutErrorCheck(ref v, ms_src);

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

            SetDstMasu_WithoutErrorCheck(ref v, ms_dst);

            // 打った駒なし

            // 成った☆(^▽^)
            v |= 1 << MoveShift.Natta;

            return((Move)v);
        }