21点游戏的代码

 

class Card
    {
        public int Painum { get; set; }//表示牌面的值1-13
        public int Paicolor { get; set; }//表示拍的颜色,1表示黑桃,2表示红桃,3梅花 ,4方块
        public int Paivalue { get; set; }//表示牌在1-52中间的位置
        ///<summary>
        ///怎样初始化一张牌
        ///</summary>

        public Card(int paivalue)
        {
            Paivalue = paivalue;
            double i = (double)Paivalue/13;
            Paicolor = Convert.ToInt32(Math.Ceiling(i));
            Painum = paivalue % 13;
            if (Painum == 0) Painum = 13;//k


        }
        public string GetPaiName()
        {
            string name = "";
            switch (Paicolor)
            {
                case 1: name = "黑桃"; break;
                case 2: name = "红桃"; break;
                case 3: name = "梅花"; break;
                case 4: name = "方块"; break;
            }
            switch (Painum)
            {
                case 1: name += "A"; break;
                case 11: name += "J"; break;
                case 12: name += "Q"; break;
                case 13: name += "K"; break;
                default: name += Painum.ToString(); break;
            }
            return name;

        }
        public int GetPaiDian()
        {
            int dian = 0;
            switch (Painum)
            {
                case 1: dian = 11; break;
                case 11:
                case 12:
                case 13: dian = 10; break;
                default: dian=Painum;break;
            }
            return dian;
        }
    

上面是牌类

下面是发牌的信息

 class Player
    {
        List<Card> cardList = new List<Card>();
        public string PlayerName { get; set; }
        int money = 1000;
        public int Touzhu = 100;
        public bool IsBao = false;
        public Player(string playName)
        {
            PlayerName = playName;

        }
        public void Lost(int lostMoney)
        {

            money = money - lostMoney;
        }
        public void Win(int winMoney)
        {
            money = money + winMoney;
        }
        public void GetCard(Card card)
        {
            cardList.Add(card);
        }
        public int GetMyCardDian()
        {
            int alldian = 0;
            foreach (Card mycard in cardList)
            {
                alldian += mycard.GetPaiDian();
            }
            return alldian;
        }
        public void ShowMyCard()
        {
            Console.WriteLine("这是"+PlayerName+"的牌");
            foreach (Card mycard in cardList)
            {
                Console.Write(mycard.GetPaiName() + " ");
                Console.Write
                ("\r\n");
            }
        }

//随机发牌

class Game
    {
        Dictionary<int, bool> allcardlist = new Dictionary<int, bool>();
        public Game()
        {
            for (int i = 1; i <= 52; i++)
            {
                allcardlist.Add(i, false);
            }
        }
        public Card FaPai()
        {
            Random random = new Random();
            int i = random.Next(1, 52);
            while (allcardlist[i] == true)
            {
                i = random.Next(1, 52);
            }
             return new Card(i);
        }

posted @ 2012-09-23 19:19  love李娟  阅读(250)  评论(0)    收藏  举报