Example #1
0
        /// <summary>
        /// 横一列に並んだ項目の数ではなく、
        /// 横×縦の項目の個数を数えるぜ☆(^▽^) 数字を山分けするのに使うぜ☆(^▽^)
        /// </summary>
        /// <returns></returns>
        private static int KazoeruUmeruMasuNoKazu(NikomaKoumokuBangoHairetu hairetu)
        {
            return(0);
            //int masuNoKazu = 0;

            //for (int iGyoIndex = 0; iGyoIndex < hairetu.Nagasa; iGyoIndex++)
            //{
            //    int gyoBango = hairetu.Hairetu[iGyoIndex];
            //    for (int iRetuIndex = 0; iRetuIndex < hairetu.Nagasa; iRetuIndex++)
            //    {
            //        int retuBango = hairetu.Hairetu[iRetuIndex];

            //        if (gyoBango <= retuBango)// 組み合わせを反対から見ただけの同じものを弾くぜ☆(^~^)
            //        {
            //            continue;
            //        }

            //        bool erabu = false;
            //        if (gyoBango < Util_NikomaKankei.MOTIKOMA_PART && retuBango < Util_NikomaKankei.MOTIKOMA_PART)
            //        {
            //            // 盤上×盤上
            //            if (Conv_NikomaKankei.BanjoKoumokuItiran[gyoBango] != Conv_NikomaKankei.BanjoKoumokuItiran[retuBango])
            //            {
            //                erabu = true;
            //            }
            //        }
            //        else if (gyoBango < Util_NikomaKankei.MOTIKOMA_PART && Util_NikomaKankei.MOTIKOMA_PART <= retuBango)
            //        {
            //            // 盤上×持駒
            //            erabu = true;
            //        }
            //        else if (Util_NikomaKankei.MOTIKOMA_PART <= gyoBango && retuBango < Util_NikomaKankei.MOTIKOMA_PART)
            //        {
            //            // 持駒×盤上
            //            erabu = true;
            //        }
            //        else if (Util_NikomaKankei.MOTIKOMA_PART <= gyoBango && Util_NikomaKankei.MOTIKOMA_PART <= retuBango)
            //        {
            //            // 持駒×持駒
            //            if (Conv_NikomaKankei.MotiKomas[gyoBango] != Conv_NikomaKankei.MotiKomas[retuBango])
            //            {
            //                erabu = true;
            //            }
            //        }

            //        if (erabu)
            //        {
            //            // 1 動かす☆
            //            masuNoKazu++;
            //        }
            //    }
            //}

            //return masuNoKazu;
        }
Example #2
0
        /// <summary>
        /// 項目番号 K の一覧を作るぜ☆(^~^)
        /// </summary>
        /// <returns></returns>
        public static void MakeKoumokuBangoHairetu_Subete(Kyokumen ky, NikomaKoumokuBangoHairetu koumokuBangoHairetu)
        {
            //koumokuBangoHairetu.Soji();

            //// 盤上のパラメーター

            //// 盤上に実際に駒がある升☆
            //Bitboard komaBB = new BitboardImpl();

            //for (int iTai=0; iTai<Conv_Taikyokusya.Itiran.Length; iTai++)
            //{
            //    Taikyokusya tai = Conv_Taikyokusya.Itiran[iTai];
            //    for (int iKs = 0; iKs < Conv_Komasyurui.Itiran.Length; iKs++)
            //    {
            //        Komasyurui ks = Conv_Komasyurui.Itiran[iKs];

            //        komaBB.Set(ky.BB_Koma.Get(ks, tai));
            //        while (!komaBB.IsEmpty() && komaBB.Ref_PopNTZ(out Masu ms_jissai))
            //        {
            //            // まず、大きく10区画「RZKHNrzkhn」に分かれているので、
            //            // komaArea = ( 0 ~ 10 ) に分けるぜ☆
            //            // area = 0 の場合、 0 以上 1 未満だぜ☆(^~^)
            //            int komaArea = Conv_Koma.NikomaKankei_BanjoKomaArea[(int)Med_Koma.KomasyuruiAndTaikyokusyaToKoma(ks,tai)];
            //            if (-1 == komaArea)
            //            {
            //                throw new Exception("未定義の駒");
            //            }

            //            // 駒種類 + 升☆(^▽^)
            //            koumokuBangoHairetu.Tuika(komaArea * KyokumenImpl.MASUS + (int)ms_jissai);
            //        }
            //    }
            //}

            //// 持駒
            //switch (ky.MotiKomas.Get(MotiKoma.Z))
            //{
            //    case 0: break;
            //    case 1: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 0); break;// 持駒の ▲ぞう1 だぜ☆(^▽^)
            //    default: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 1); break;// 持駒の ▲ぞう2 だぜ☆(^▽^)
            //}
            //switch (ky.MotiKomas.Get(MotiKoma.K))
            //{
            //    case 0: break;
            //    case 1: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 2); break;
            //    default: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 3); break;
            //}
            //switch (ky.MotiKomas.Get(MotiKoma.H))
            //{
            //    case 0: break;
            //    case 1: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 4); break;
            //    default: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 5); break;
            //}
            //switch (ky.MotiKomas.Get(MotiKoma.z))
            //{
            //    case 0: break;
            //    case 1: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 6); break;
            //    default: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 7); break;
            //}
            //switch (ky.MotiKomas.Get(MotiKoma.k))
            //{
            //    case 0: break;
            //    case 1: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 8); break;
            //    default: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 9); break;
            //}
            //switch (ky.MotiKomas.Get(MotiKoma.h))
            //{
            //    case 0: break;
            //    case 1: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 10); break;
            //    default: koumokuBangoHairetu.Tuika(Util_NikomaKankei.MOTIKOMA_PART + 11); break;
            //}
        }
Example #3
0
        /// <summary>
        /// 1対多
        /// </summary>
        /// <param name="ninsyo"></param>
        /// <param name="ky"></param>
        /// <param name="hairetuTa"></param>
        /// <param name="listKN"></param>
        /// <returns></returns>
        public static Hyokati Kazoeru_NikomaKankeiHyokati_ItiTaiTa_SabunKosinYou(Kyokumen ky, int koumokuNo, NikomaKoumokuBangoHairetu hairetuTa)
        {
            return((Hyokati)0);
            //// 評価値: 浮動小数点数だと、差分更新でずれるので整数にするぜ☆(^▽^)
            //int hyokatiNumber = 0;

            ////int taKoumoku;// 項目1
            //for (int iTaIndex = 0; iTaIndex < hairetuTa.Nagasa; iTaIndex++)
            //{
            //    // 列番号<行番号 の個所を使うようにするぜ☆(^▽^)関数(小さい数字,大きい数字)だぜ☆ そうでなければ逆立ちさせるぜ☆(^▽^)www
            //    if (hairetuTa.Hairetu[iTaIndex] < koumokuNo)
            //    {
            //        hyokatiNumber += Util_NikomaKankei.GetHyokaNumber_SabunKosinYou(hairetuTa.Hairetu[iTaIndex], koumokuNo);
            //    }
            //    else if (koumokuNo < hairetuTa.Hairetu[iTaIndex])
            //    {
            //        // 逆立ち☆(^▽^)www
            //        hyokatiNumber += Util_NikomaKankei.GetHyokaNumber_SabunKosinYou(koumokuNo, hairetuTa.Hairetu[iTaIndex]);
            //    }

            //    // taKoumoku == koumokuNo
            //    // 無視☆(^~^)
            //}

            //if (hyokatiNumber < Util_NikomaKankei.SAISYO_HYOKATI_SABUNKOSINYOU)
            //{
            //    hyokatiNumber = Util_NikomaKankei.SAISYO_HYOKATI_SABUNKOSINYOU;
            //}
            //else if (Util_NikomaKankei.SAIDAI_HYOKATI_SABUNKOSINYOU < hyokatiNumber)
            //{
            //    hyokatiNumber = Util_NikomaKankei.SAIDAI_HYOKATI_SABUNKOSINYOU;
            //}

            //if (ky.Teban == Taikyokusya.T2)
            //{
            //    hyokatiNumber = -hyokatiNumber; // 符号を反転して、対局者2視点に変えるぜ☆(^▽^)
            //}
            //return (Hyokati)hyokatiNumber;
        }