⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ddzdesk.cs

📁 ddz(C#后C++核心)ddz(C#后C++核心)ddz(C#后C++核心)ddz(C#后C++核心)ddz(C#后C++核心)ddz(C#后C++核心)
💻 CS
📖 第 1 页 / 共 5 页
字号:
            {
                paiType = PaiType.Pass;
                return 1;
            }

            if (chuPaiCount == 1) //单牌
            {
                if (paistrlist.Trim() == "") 
                {
                    paiType = PaiType.Not;
                    return 0;
                }
                paiMin = int.Parse(paistrlist);
                paiType = PaiType.Single;
                return 1;
            }
            else if (chuPaiCount == 2) //双牌或火箭
            {
                int dui = IsTwo(paistrlist);
                int huojian = IsRocket(paistrlist);
                if (dui > 0)
                {
                    paiMin = dui;
                    paiType = PaiType.Double;
                    return 1;
                }
                else if (huojian > 0)
                {
                    paiMin = huojian;
                    paiType = PaiType.Rocket;
                    return 1;
                }
                else 
                {
                    return 0;
                }
            }
            else if (chuPaiCount == 3) //三张
            {
                if ((paiMin = Is3(paistrlist)) > 0)
                {
                    paiType = PaiType.Three;
                    return 1;
                }
                else
                {
                    return 0;
                }
            }
            else if (chuPaiCount == 4) //三带一 或 炸弹
            {
                int san = Is3_1(paistrlist);
                int zhadan = IsBomb(paistrlist);
                if (san > 0)
                {
                    paiMin = san;
                    paiType = PaiType.Three1;
                    return 1;
                }
                else if (zhadan > 0)
                {
                    paiMin = zhadan;
                    paiType = PaiType.Bomb;
                    return 1;
                }
                else
                {
                    return 0;
                }
            }
            #endregion

            #region 大于等于5张 (三带一对 或 莲子)
            if (chuPaiCount >= 5) //三带一对 或 莲子
            {
                int san2 = Is3_2(paistrlist);
                int lianzhi = IsOneTrain(paistrlist);
                if (san2 > 0)
                {
                    paiMin = san2;
                    paiType = PaiType.Three2;
                    return 1;
                }
                else if (lianzhi > 0)
                {
                    paiMin = lianzhi;
                    paiType = PaiType.OneTrain;
                    return 1;
                }
            }
            #endregion

            #region 大于等于6张 (四带两单 、 姊妹对 或 飞机<不带>)
            if (chuPaiCount >= 6)
            { 
                int si11 = Is4_11(paistrlist);
                if (si11 > 0)
                {
                    paiMin = si11;
                    paiType = PaiType.Four11;
                    return 1;
                }
                
                int zhimei = IsTwoTrain(paistrlist);
                if (zhimei > 0)
                {
                    paiMin = zhimei;
                    paiType = PaiType.TwoTrain;
                    return 1;
                }

                int feiji = Is33(paistrlist);
                if (feiji > 0)
                {
                    paiMin = feiji;
                    paiType = PaiType.T33;
                    return 1;
                }
            }
            #endregion

            #region 等于8张 (四带两对 或 飞机<带两单>)
            if (chuPaiCount == 8)
            {
                int si22 = Is4_22(paistrlist);
                if (si22 > 0)
                {
                    paiMin = si22;
                    paiType = PaiType.Four22;
                    return 1;
                }

                int feiji = Is33_Tail(paistrlist);
                if (feiji > 0)
                {
                    paiMin = feiji;
                    paiType = PaiType.T33_11;
                    return 1;
                }
                return 0;
            }
            #endregion

            #region 等于10张 (飞机<带两对>)
            if (chuPaiCount == 10)
            {                
                int feiji = Is33_Tail(paistrlist);
                if (feiji > 0)
                {
                    paiMin = feiji;
                    paiType = PaiType.T33_22;
                    return 1;
                }
                return 0;
            }
            #endregion
            #region 等于12张 (飞机<带三单>)
            if (chuPaiCount == 12)
            {
                int feiji = Is33_Tail(paistrlist);
                if (feiji > 0)
                {
                    paiMin = feiji;
                    paiType = PaiType.T333_111;
                    return 1;
                }
                return 0;
            }
            #endregion
            #region 等于15张 (飞机<带三对>)
            if (chuPaiCount == 15)
            {
                int feiji = Is33_Tail(paistrlist);
                if (feiji > 0)
                {
                    paiMin = feiji;
                    paiType = PaiType.T333_222;
                    return 1;
                }
                return 0;
            }
            #endregion
            #region 等于16张 (飞机<带四单>)
            if (chuPaiCount == 16)
            {
                int feiji = Is33_Tail(paistrlist);
                if (feiji > 0)
                {
                    paiMin = feiji;
                    paiType = PaiType.T3333_1111;
                    return 1;
                }
                return 0;
            }
            #endregion
            #region 等于20张 (飞机<带四对> 或 飞机<带五单>) 只有地主有这种可能(其实也是不太可能的牌,比中七星彩难多了),刚好一手牌打完,即春天
            if (chuPaiCount == 20)
            {
                int feiji = Is33_Tail(paistrlist);
                if (feiji > 0)
                {
                    paiMin = feiji;
                    paiType = PaiType.T33333;
                    return 1;
                }
            }
            #endregion

            return 0;
        }

        //查找可出的牌(标记在 medp.paistr 中)
        private void SearchChuPai(DdzPoke medp)
        {
            medp.paistr = "pass";

            if (firstPlayer == medp.order)
            {
                DirectChuPai(medp);
            }
            else
            {
                int index = (paiMin1 > 5000) ? (paiMin1 / 10) % 100 + 13 : (paiMin1 / 10) % 100;
                switch (paiType1)
                {
                    case PaiType.Single:
                        {
                            Search1(medp ,index); break;
                        }
                    case PaiType.Double:
                        {
                            Search2(medp, index); break;
                        }
                    case PaiType.Three:
                        {
                            Search3(medp, index); break;
                        }
                    case PaiType.Three1:
                        {
                            Search3_1(medp, index); break;
                        }
                    case PaiType.Bomb:
                        {
                            SearchBomb(medp, index); break;
                        }
                    case PaiType.Three2:
                        {
                            Search3_2(medp, index); break;
                        }
                    case PaiType.OneTrain:
                        {
                            SearchOneTrain(medp, index ,chuPaiCount1); break;
                        }
                    case PaiType.Four11:
                        {
                            SearchFour11(medp, index); break;
                        }
                    case PaiType.TwoTrain:
                        {
                            SearchTwoTrain(medp, index, chuPaiCount1); break;
                        }
                    case PaiType.T33:
                        {
                            SearchT33(medp, index, chuPaiCount1); break;
                        }
                    case PaiType.Four22:
                        {
                            SearchFour22(medp, index); break;
                        }
                    case PaiType.T33_11:
                        {
                            SearchT33_11(medp, index, chuPaiCount1); break;
                        }
                    case PaiType.T333_111:
                        {
                            SearchT333_111(medp, index, chuPaiCount1); break;
                        }
                    case PaiType.T3333_1111:
                        {
                            SearchT3333_1111(medp, index, chuPaiCount1); break;
                        }
                    case PaiType.Rocket:
                        {
                            break;
                        }
                    default:
                        {
                            int[] tmpPaiArray = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
                            foreach (Card paiCard in medp.OrgalCard)
                            {
                                if (paiCard.state == 0)
                                {
                                    int ind = (paiCard.value > 5000) ? (paiCard.value / 10) % 100 + 13 : (paiCard.value / 10) % 100; //判断大小鬼
                                    tmpPaiArray[ind]++;
                                }
                            }

                            for (int i = 1; i < tmpPaiArray.Length - 2; i++)
                            {
                                if (tmpPaiArray[i] == 4)//找炸弹
                                {
                                    string findPaiStr;
                                    int tmpMinPai = FindPaiByIndex(medp, i, 4, out findPaiStr);
                                    if (findPaiStr != "" && tmpMinPai > 0)
                                    {
                                        medp.paistr = findPaiStr;
                                    }
                                    return ;
                                }
                            }
                            //找大小鬼
                            if (tmpPaiArray[14] == 1 && tmpPaiArray[15] == 1)
                            {
                                medp.paistr = "5015,5025";                                
                            }
                            return ;
                        }
                }
            }
        }

        //直接出牌
        private void DirectChuPai(DdzPoke medp)
        {
            int npaicount = 0;
            foreach (Card paiCard in medp.OrgalCard)
            {
                if (paiCard.state == 0)
                {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -