Пример #1
0
        // 成れない駒(X Koma) 捨て王手指し
        public static void GenerateNx_SuteOteZasi()
        {
            // 王手に限る☆
            GenerateMove03.SiborikomiOte();
            // 紐を付けない☆
            GenerateMove03.KesuHimoduke();

            while (PureMemory.ssss_bbVar_idosaki_narazu.Ref_PopNTZ(out PureMemory.ssss_ugoki_ms_dst)) // 立っているビットを降ろすぜ☆
            {
                if (GenerateMove03.TadasuteNoUgoki())                                                 // タダ捨ての動きに限る☆
                {
                    PureMemory.SetSsssGenk(
                        Tume1Hantei.CheckBegin_Tume1_BanjoKoma(),// 一手詰めルーチン☆
                        false,
                        NigemitiWatasuKansyu.IsNigemitiWoAkeru()
                        );

                    MoveGenAccessor.AddMoveNarazuGoodXorBad();

                    if (Tume1Hantei.CheckEnd_Tume1())
                    {
                        break;
                    }                                           //終了☆
                }
            }
        }
Пример #2
0
        // らいおん 駒を取る手
        public static void GenerateRaion_KomaWoToruTe()
        {
            // トライ は除外するぜ☆(^▽^)
            GenerateMove03.KesuTry();

            // らいおん が自分から 相手の利きに飛び込むのを防ぐぜ☆(^▽^)www
            GenerateMove03.KesuRaionJisatusyu();

            while (PureMemory.ssss_bbVar_idosaki_narazu.Ref_PopNTZ(out PureMemory.ssss_ugoki_ms_dst))
            {
                // 駒を取るような全ての手は、選択肢に入れるぜ☆(^~^)

                PureMemory.SetSsssGenk(
                    Tume1Hantei.CheckBegin_Tume1_BanjoKoma(),// 一手詰めルーチン☆
                    false,
                    NigemitiWatasuKansyu.IsNigemitiWoAkeru()
                    );

                MoveGenAccessor.AddMoveNarazuGoodXorBad();

                if (Tume1Hantei.CheckEnd_Tume1())
                {
                    break;
                }                                           //終了☆
            }
        }
Пример #3
0
        // らいおん、成れない駒(X Koma) 駒を取る手
        public static void GenerateXk_KomaWoToruTe()
        {
            while (PureMemory.ssss_bbVar_idosaki_narazu.Ref_PopNTZ(out PureMemory.ssss_ugoki_ms_dst))
            {
                // 駒を取るような全ての手は、選択肢に入れるぜ☆(^~^)

                PureMemory.SetSsssGenk(
                    Tume1Hantei.CheckBegin_Tume1_BanjoKoma(),// 一手詰めルーチン☆
                    false,
                    NigemitiWatasuKansyu.IsNigemitiWoAkeru()
                    );

                MoveGenAccessor.AddMoveNarazuGoodXorBad();

                if (Tume1Hantei.CheckEnd_Tume1())
                {
                    break;
                }                                           //終了☆
            }
        }
Пример #4
0
        // 成れる駒(Nareru Koma) らいおんキャッチ調査 | らいおんキャッチ
        public static void GenerateNk_RaionCatch()
        {
            // 成れる場合
            if (PureMemory.ssss_bbVar_idosaki_nari.GetNTZ(out PureMemory.ssss_ugoki_ms_dst))
            {
                // らいおんをキャッチする手は、1つ見つければOKだぜ☆(^~^)

                if (MoveType.N17_RaionCatchChosa == PureMemory.ssss_ugoki_kakuteiSsType)
                {
                    // 調査するだけ☆ らいおんキャッチできることが分かったので終了☆(^~^)
                    PureMemory.hot_raionCatchChosaAr[PureMemory.kifu_nTeban] = true;
                    return;
                }

                MoveGenAccessor.AddMoveNariGood();
                PureMemory.SetTansakuUtikiri(TansakuUtikiri.RaionTukamaeta);
            }

            if (PureMemory.ssss_bbVar_idosaki_narazu.GetNTZ(out PureMemory.ssss_ugoki_ms_dst))
            {
                // らいおんをキャッチする手は、1つ見つければOKだぜ☆(^~^)

                if (MoveType.N17_RaionCatchChosa == PureMemory.ssss_ugoki_kakuteiSsType)
                {
                    // 調査するだけ☆ らいおんキャッチできることが分かったので終了☆(^~^)
                    PureMemory.hot_raionCatchChosaAr[PureMemory.kifu_nTeban] = true;
                    return;
                }

                PureMemory.SetSsssGenk(
                    false,
                    false,
                    NigemitiWatasuKansyu.IsNigemitiWoAkeru()
                    );
                MoveGenAccessor.AddMoveNarazuGoodXorBad();
                PureMemory.SetTansakuUtikiri(TansakuUtikiri.RaionTukamaeta);
            }
        }