示例#1
0
        /// <summary>
        /// 洗牌:混乱牌包中的牌,0为无风
        /// </summary>
        public void WashCard()
        {
            Init();

            Random rand = MahjongGeneralAlgorithm.GetRandomObject();

            for (int i = 0; i < m_cPackage.Count; i++)
            {
                int r = rand.Next(i, m_cPackage.Count);
                //交换
                byte changeCard = m_cPackage[i];
                m_cPackage[i] = m_cPackage[r];
                m_cPackage[r] = changeCard;
            }
        }
示例#2
0
        /// <summary>
        /// 从牌包中获取一张指定集合中的牌,如果没有就抓牌包中第一张牌
        /// </summary>
        /// <param name="checkSource"></param>
        /// <returns></returns>
        public byte HoldCardInSrc(List <byte> src)
        {
            if (m_cPackage.Count() < 1)
            {
                return(MahjongDef.gInvalidMahjongValue);
            }
            if ((null == src) || (src.Count < 1))
            {
                return(HoldCard());
            }

            int    idx        = -1;
            Random randObj    = MahjongGeneralAlgorithm.GetRandomObject();
            byte   returnCard = MahjongDef.gInvalidMahjongValue;

            do
            {
                //获取要随机的牌
                idx = randObj.Next(0, src.Count);

                //检查牌包中是否有该牌
                if (m_cPackage.Contains(src[idx]))
                {
                    returnCard = src[idx];
                    m_cPackage.Remove(returnCard);
                }

                src.RemoveAt(idx);
            } while ((returnCard == MahjongDef.gInvalidMahjongValue) && (src.Count > 0));

            //如果牌包中没有指定集合中的牌,就抓第一张牌
            if (returnCard == MahjongDef.gInvalidMahjongValue)
            {
                return(HoldCard());
            }

            //找到这张牌就返回
            return(returnCard);
        }
示例#3
0
        public byte  getRandomPeiZi()
        {
            Random rand = MahjongGeneralAlgorithm.GetRandomObject();

            return(m_ConstAllCard[rand.Next(0, MGMJConstants.gCardCount_Package)]);
        }