Пример #1
0
        public static void AddMoveNariGood()
        {
            if (PureMemory.ssss_genk_tume1)
            {
                MoveGenAccessor.ClearMoveList();
            }                                                                   //他の指し手を消し飛ばすぜ☆(^▽^)

            Move ss = AbstractConvMove.ToMove01bNariSasi(PureMemory.ssss_ugoki_ms_src, PureMemory.ssss_ugoki_ms_dst);

            Debug.Assert(Move.Toryo != ss, "");
            PureMemory.ssss_moveList[PureMemory.tnsk_fukasa].AddList(ss, PureMemory.ssss_ugoki_kakuteiSsType);
        }
Пример #2
0
        public static Move TryFenMove2(
            FenSyurui f,
            string str1,
            string str2,
            string str3,
            string str4,
            string str5
            )
        {
            int dstSuji = LisInt.FenSuji_Int(f, str3); // 至筋
            int dstDan  = LisInt.FenDan_Int(f, str4);  // 至段

            // 取った駒を調べるぜ☆(^▽^)
            Masu dstMs = Conv_Masu.ToMasu(dstSuji, dstDan);


            //------------------------------
            // 5
            //------------------------------
            bool natta = false;

            if ("+" == str5)
            {
                // 成りました
                natta = true;
            }


            //------------------------------
            // 結果
            //------------------------------
            if ("*" == str2)
            {
                // 駒台から打ったぜ☆
                return(AbstractConvMove.ToMove01cUtta(
                           dstMs,
                           Med_Parser.MojiToMotikomaSyurui(f, str1)//打った駒
                           ));
            }
            else
            {
                // 盤上の駒を動かしたぜ☆
                if (natta)
                {
                    return(AbstractConvMove.ToMove01bNariSasi(Med_Parser.FenSujiDan_Masu(f, str1, str2), dstMs));
                }
                else
                {
                    return(AbstractConvMove.ToMove01aNarazuSasi(Med_Parser.FenSujiDan_Masu(f, str1, str2), dstMs));
                }
            }
        }
Пример #3
0
        public static void AddMoveNariGoodXorBad()
        {
            Move ss = AbstractConvMove.ToMove01bNariSasi(PureMemory.ssss_ugoki_ms_src, PureMemory.ssss_ugoki_ms_dst);

            if (PureMemory.ssss_genk_tume1)
            {
                MoveGenAccessor.ClearMoveList();
            }                                                                   //他の指し手を消し飛ばすぜ☆(^▽^)

            Debug.Assert(Move.Toryo != ss, "");
            if (PureMemory.IsAkusyu_Ssss)
            {
                PureMemory.ssss_moveListBad[PureMemory.tnsk_fukasa].AddList(ss, PureMemory.ssss_ugoki_kakuteiSsType | PureMemory.GetAkusyuType_Ssss());
            }
            else
            {
                PureMemory.ssss_moveList[PureMemory.tnsk_fukasa].AddList(ss, PureMemory.ssss_ugoki_kakuteiSsType);
            }
        }