Exemple #1
0
        public Poker SearchPoker(Player p)
        {
            Poker temp = p.ActivatePoker();    //temp是电脑或玩家的ActivatePoker

            foreach (Poker item in possession) //泛型已出,千万别用for,迭代器记死
            {
                if (item.ID % 13 == temp.ID % 13)
                {
                    return(item);
                }
            }
            return(null);
        }
Exemple #2
0
        public void Shuffle(Poker[] poker)
        {
            Random r = new Random();

            for (int i = 53; i >= 0; --i)
            {
                Poker temp = null;
                int   j    = r.Next(0, i);
                temp     = poker[i];
                poker[i] = poker[j];
                poker[j] = temp;
            }
        }
Exemple #3
0
 public Poker LosePoker()
 {
     if (possession.Count != 0)
     {
         Poker temp = null;//为什么弄个temp因为没办法读出删除一步走
         temp = possession.Last();
         possession.RemoveLast();
         return(temp);
     }
     else
     {
         return(null);
     }
 }
        public Table UpdateObsoleteTable(string strSRecMsg)
        {
            Table neoTable = new Table();

            if (strSRecMsg != "-1" && strSRecMsg != null)
            {
                string[] strArray = strSRecMsg.Split(',');
                for (int i = 0; i < strArray.Length - 1; i++)
                {
                    Poker p = new Poker(int.Parse(strArray[i]));
                    neoTable.GainPoker(p);
                }
                return(neoTable);
            }
            else
            {
                return(neoTable);//千万不要直接Return null不然满城血雨!!
            }
        }
        //现在不是自动游戏时代了
        //public Poker SearchPoker(Poker clickedPoker)
        //{//传进来的不能是玩家而应该是扑克了
        //    foreach (Poker item in possession)//泛型已出,千万别用for,迭代器记死
        //    {
        //        if (item.ID % 13 == clickedPoker.ID % 13)
        //        {
        //            return item;
        //        }
        //    }
        //    return null;
        //}
        public int CartPoker(Table table, Player p, Poker clickedPoker)
        {//如上改动
            Poker lastPoker = p.ActivatePoker();

            table.GainPoker(p.LosePoker());
            if (lastPoker.ID % 13 == clickedPoker.ID % 13)
            {
                int cartLock             = 0;
                LinkedList <Poker> tempo = new LinkedList <Poker>();
                foreach (Poker item in possession)  //获得牌
                {
                    if (item.ID == clickedPoker.ID) //开锁
                    {
                        cartLock = 1;
                    }

                    if (cartLock == 1)
                    {
                        p.GainPoker(item);
                    }
                    else
                    {
                        tempo.AddLast(item);
                    }
                }
                table.possession.Clear();
                foreach (Poker item in tempo)
                {
                    possession.AddLast(item);
                }
                tempo.Clear();
                return(1);//成功加牌
            }
            else
            {
                return(0);//用户瞎点的,不予加牌
            }
        }
Exemple #6
0
 public void GainPoker(Poker p)
 {
     possession.AddLast(p);
 }