Exemple #1
0
        public static SyElement HandleToMasu(int masuHandle)
        {
            SyElement masu;

            if (
                !Util_Masu.Yuko(masuHandle)
                )
            {
                masu = Masu_Honshogi.Error;
            }
            else
            {
                masu = Masu_Honshogi.Items_All[masuHandle];
            }

            return(masu);
        }
Exemple #2
0
        public static SyElement OkibaSujiDanToMasu(Okiba okiba, int suji, int dan)
        {
            int masuHandle = -1;

            switch (okiba)
            {
            case Okiba.ShogiBan:
                if (1 <= suji && suji <= Util_Masu.SHOGIBAN_LAST_SUJI && 1 <= dan && dan <= Util_Masu.SHOGIBAN_LAST_DAN)
                {
                    masuHandle = (suji - 1) * Util_Masu.SHOGIBAN_LAST_DAN + (dan - 1);
                }
                break;

            case Okiba.Sente_Komadai:
            case Okiba.Gote_Komadai:
            case Okiba.KomaBukuro:
                if (1 <= suji && suji <= Util_Masu.KOMADAI_LAST_SUJI && 1 <= dan && dan <= Util_Masu.KOMADAI_LAST_DAN)
                {
                    masuHandle  = (suji - 1) * Util_Masu.KOMADAI_LAST_DAN + (dan - 1);
                    masuHandle += Util_Masu.AsMasuNumber(Util_Masu.GetFirstMasuFromOkiba(okiba));
                }
                break;

            default:
                break;
            }


            SyElement masu = Masu_Honshogi.Error;//範囲外が指定されることもあります。

            if (Util_Masu.Yuko(masuHandle))
            {
                masu = Masu_Honshogi.Items_All[masuHandle];
            }


            return(masu);
        }