コード例 #1
0
        static public IInitCards GetInst(GameCommon.PeopleNum num)
        {
            log.log.trace(new System.Diagnostics.StackFrame(), service.timerservice.Tick, "call GetInst");

            switch (num)
            {
            case GameCommon.PeopleNum.TwoPeople:
                return(new TwoInitCards());

            case GameCommon.PeopleNum.ThreePeople:
                return(new ThreeInitCards());

            case GameCommon.PeopleNum.FourPeople:
                return(new FourInitCards());

            default:
                return(null);
            }
        }
コード例 #2
0
        static private HupaiState SubstitutePerCard(List <Int64> arr, Int64 lai, GameCommon.PeopleNum num)
        {
            HupaiState   flag  = HupaiState.no_hu;
            List <Int64> temp1 = new List <Int64>(arr);

            temp1.Remove(lai);
            int circular_num;

            if (num == GameCommon.PeopleNum.FourPeople)
            {
                circular_num = (int)GameCommon.mjCards.T_9;
            }
            else
            {
                circular_num = (int)GameCommon.mjCards.B_9;
            }
            for (int j = 1; j <= circular_num; j++)
            {
                if (j % 10 != 0)
                {
                    temp1.Add(j);
                    temp1.Sort();
                    for (int i = arr.Count - 1; i > 0;)
                    {
                        List <Int64> temp = new List <Int64>(temp1);
                        if (temp1[i] == temp1[i - 1])
                        {
                            temp.RemoveAt(i);
                            temp.RemoveAt(i - 1);
                            i -= 2;
                            if (checkHupaiTwo(temp))
                            {
                                if (j == lai)
                                {
                                    flag = HupaiState.hard_hu;
                                    log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "五");
                                    return(flag);
                                }
                                else
                                {
                                    flag = HupaiState.soft_hu;
                                    log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "六");
                                    return(flag);
                                }
                            }
                            temp.Reverse();
                            if (checkHupaiTwo(temp))
                            {
                                if (j == lai)
                                {
                                    flag = HupaiState.hard_hu;
                                    log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "七");
                                    return(flag);
                                }
                                else
                                {
                                    flag = HupaiState.soft_hu;
                                    log.log.trace(new System.Diagnostics.StackFrame(true), service.timerservice.Tick, "八");
                                    return(flag);
                                }
                            }
                        }
                        else
                        {
                            i--;
                        }
                    }
                    temp1.Remove(j);
                }
            }
            return(flag);
        }