Esempio n. 1
0
        private static bool OrderLessOne(List <Card> afterRemoveCards)
        {
            foreach (var card in afterRemoveCards)
            {
                List <Card>  checkCards   = new List <Card>(afterRemoveCards);
                WinCardModel winCardModel = new WinCardModel();
                winCardModel.IsZiMoWin = true;
                bool samePairs = WinALG.FindAndRemovePairs(ref checkCards, winCardModel, card);
                if (!samePairs)
                {
                    continue;
                }

                if (WinALG.IsOneLessAllOrderAndBigPairs(checkCards, winCardModel))
                {
                    return(true);
                }
                else
                {
                    int count = winCardModel.CardSectionList.Count;
                    for (int i = 1; i < count; i++)
                    {
                        winCardModel.CardSectionList.RemoveAt(count - i);
                    }
                    if (WinALG.IsOneLessAllSamllPairs(checkCards, winCardModel))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// 判断是否可以胡牌
        /// </summary>
        /// <param name="cardList"></param>
        /// <returns></returns>
        public static bool IsCanWinCard(ref List <Card> cardList, bool IsZiMo)
        {
            List <WinCardModel> cardModels = WinALG.Win(cardList, IsZiMo);

            return(cardModels.Count > 0);
        }