Exemple #1
0
        static void Main(string[] args)
        {
            //       var Point = new string[]
            //{
            //                         "A", "2", "3", "4", "5", "6", "7", "8", "9", "10","J", "Q", "K",
            //};
            //       var Color = new string[]
            //       {
            //                         "红桃", "黑桃", "方片", "梅花",
            //       };
            //       var list = Enumerable.Range(0, 52) //生成52张牌
            //               .OrderBy(p => Guid.NewGuid()); //随机乱序
            //       var n = 0;
            //       foreach (var x in list)
            //       {
            //           Console.Write("{0}{1} ", Color[(int)(x / 13)], Point[x % 13]);
            //           if ((++n) % 13 == 0) Console.WriteLine(" ");
            //       }
            //       Console.Read();


            //Poker po = new Poker();
            //ArrayList myPoker = new ArrayList();
            //ArrayList Person1 = new ArrayList();
            //ArrayList Person2 = new ArrayList();
            //ArrayList Person3 = new ArrayList();
            //ArrayList Person4 = new ArrayList();
            //Random r = new Random();
            //for (int i = -4; i <= -1; i++)
            //{
            //    //外循环扑克花色
            //    for (int j = 0; j <= 12; j++)
            //    {
            //        //外层循环扑克点数
            //        myPoker.Add(new Poker(
            //            Enum.GetName(typeof(Color), i),
            //            Enum.GetName(typeof(Point), j)));
            //    }

            //}
            //Console.WriteLine("打印所有扑克牌:");

            //for (int i = 0; i < 52; i++)
            //{//打印52张生成的扑克牌
            //    Poker poAll = (Poker)myPoker[i];
            //    poAll.Printp();
            //}
            ////开始发牌,一个人一个人的发,每发一张牌得从myPoker中RemoveAt掉扑克牌,Count数减小;第一个人Add到一张牌。
            //for (int i = 0; i < 13; i++)
            //{
            //    int te = r.Next(0, myPoker.Count);
            //    Person1.Add(myPoker[te]);
            //    myPoker.RemoveAt(te);
            //}
            //for (int i = 0; i < 13; i++)
            //{
            //    int te = r.Next(0, myPoker.Count);
            //    Person2.Add(myPoker[te]);
            //    myPoker.RemoveAt(te);
            //}
            //for (int i = 0; i < 13; i++)
            //{
            //    int te = r.Next(0, myPoker.Count);
            //    Person3.Add(myPoker[te]);
            //    myPoker.RemoveAt(te);
            //}
            //for (int i = 0; i < 13; i++)
            //{
            //    int te = r.Next(0, myPoker.Count);
            //    Person4.Add(myPoker[te]);
            //    myPoker.RemoveAt(te);
            //}

            //Console.WriteLine();
            //Console.WriteLine("打印第一个人的扑克牌:");
            //for (int i = 0; i < 13; i++)
            //{
            //    Poker po1 = (Poker)Person1[i];
            //    po1.Printp();
            //}
            //Console.WriteLine();
            //Console.WriteLine("打印第二个人的扑克牌:");
            //for (int i = 0; i < 13; i++)
            //{
            //    Poker po2 = (Poker)Person2[i];
            //    po2.Printp();
            //}
            //Console.WriteLine();
            //Console.WriteLine("打印第三个人的扑克牌:");
            //for (int i = 0; i < 13; i++)
            //{
            //    Poker po3 = (Poker)Person3[i];
            //    po3.Printp();
            //}
            //Console.WriteLine();
            //Console.WriteLine("打印第四个人的扑克牌:");
            //for (int i = 0; i < 13; i++)
            //{
            //    Poker po4 = (Poker)Person4[i];
            //    po4.Printp();
            //}
            //Console.WriteLine();
            //Console.Read();
            //    }
            //}


            string[] cardColor = { "方块", "梅花", "红桃", "黑桃" };
            int[]    cardXia   =
            {
                44, 48, 0, 4,  8, 12, 16, 20, 24, 28, 32, 36, 40,
                45, 49, 1, 5,  9, 13, 17, 21, 25, 29, 33, 37, 41,
                46, 50, 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42,
                47, 51, 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43
            };
            string[] cardWang   = { "大王", "小王" };
            int[]    wangXia    = { 52, 53 };
            var      cardList   = new List <Card>();
            int      colorIndex = 0;
            int      tempValue  = 0;

            for (int i = 0; i < cardXia.Length; i++) //有点数牌
            {
                if (i % 13 == 0 && i != 0)           //判断花色牌数,达到13取下一个花色
                {
                    colorIndex++;
                }

                Char a;
                tempValue = i % 13;
                switch (tempValue)
                {
                case 0:
                    a = 'A';
                    break;

                case 9:
                    a = '十';
                    break;

                case 10:
                    a = 'J';
                    break;

                case 11:
                    a = 'Q';
                    break;

                case 12:
                    a = 'K';
                    break;

                default:
                    a = (Char)(tempValue + (int)'1');
                    break;
                }
                Card vm = new Card//初始化赋值卡牌属性
                {
                    value = a,
                    color = cardColor[colorIndex],
                    xia   = cardXia[i]
                };
                cardList.Add(vm);
            }
            for (int i = 0; i < cardWang.Length; i++)  //无点数牌====王
            {
                Card vm = new Card
                {
                    color = cardWang[i],
                    xia   = wangXia[i]
                };
                cardList.Add(vm);
            }
            List <Card> ShuffleCardEnd = ShuffleCard(cardList);
            /////斗地主四人打牌51张分配,一次性发完个人的牌,留最后3张底牌
            List <Card> one   = new List <Card>();
            List <Card> tow   = new List <Card>();
            List <Card> three = new List <Card>();
            List <Card> four  = new List <Card>();
            List <Card> glide = new List <Card>();

            for (int i = 0; i < ShuffleCardEnd.Count; i++)
            {
                if (i < 13)
                {
                    Card vm = new Card()
                    {
                        color = ShuffleCardEnd[i].color,
                        value = ShuffleCardEnd[i].value,
                        xia   = ShuffleCardEnd[i].xia
                    };
                    one.Add(vm);
                }
                else if (i < 26)
                {
                    Card vm = new Card()
                    {
                        color = ShuffleCardEnd[i].color,
                        value = ShuffleCardEnd[i].value,
                        xia   = ShuffleCardEnd[i].xia
                    };
                    tow.Add(vm);
                }
                else if (i < 39)
                {
                    Card vm = new Card()
                    {
                        color = ShuffleCardEnd[i].color,
                        value = ShuffleCardEnd[i].value,
                        xia   = ShuffleCardEnd[i].xia
                    };
                    three.Add(vm);
                }

                else if (i < 51)
                {
                    Card vm = new Card()
                    {
                        color = ShuffleCardEnd[i].color,
                        value = ShuffleCardEnd[i].value,
                        xia   = ShuffleCardEnd[i].xia
                    };
                    four.Add(vm);
                }
                else
                {
                    Card vm = new Card()
                    {
                        color = ShuffleCardEnd[i].color,
                        value = ShuffleCardEnd[i].value,
                        xia   = ShuffleCardEnd[i].xia
                    };
                    glide.Add(vm);
                }
            }
            //输出
            Console.WriteLine("发牌每人得到:");
            Console.Write("one手上的牌是:");
            ShowCard(one);
            Console.Write("tow手上的牌是:");
            ShowCard(tow);
            Console.Write("three手上的牌是:");
            ShowCard(three);
            Console.Write("four手上的牌是:");
            ShowCard(four);
            Console.WriteLine();
            Console.WriteLine("===========================");
            Console.Write("低牌是:");
            ShowCard(glide);
            Console.WriteLine();
            Console.WriteLine("各自手上排序后:");
            Console.Write("one手上的牌是:");
            ShowCards(one);
            Console.Write("tow手上的牌是:");
            ShowCards(tow);
            Console.Write("three手上的牌是:");
            ShowCards(three);
            Console.Write("four手上的牌是:");
            ShowCards(four);
            Console.ReadLine();
        }
Exemple #2
0
        static void Main(string[] args)
        {
            string[] cardColor = { "方块", "梅花", "红桃", "黑桃" };
            int[]    cardXia   =
            {
                44, 48, 0, 4,  8, 12, 16, 20, 24, 28, 32, 36, 40,
                45, 49, 1, 5,  9, 13, 17, 21, 25, 29, 33, 37, 41,
                46, 50, 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42,
                47, 51, 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43
            };
            string[] cardWang   = { "大王", "小王" };
            int[]    wangXia    = { 52, 53 };
            var      cardList   = new List <Card>();
            int      colorIndex = 0;
            int      tempValue  = 0;

            for (int i = 0; i < cardXia.Length; i++) //有点数牌
            {
                if (i % 13 == 0 && i != 0)           //判断花色牌数,达到13取下一个花色
                {
                    colorIndex++;
                }

                Char a;
                tempValue = i % 13;
                switch (tempValue)
                {
                case 0:
                    a = 'A';
                    break;

                case 9:
                    a = '十';
                    break;

                case 10:
                    a = 'J';
                    break;

                case 11:
                    a = 'Q';
                    break;

                case 12:
                    a = 'K';
                    break;

                default:
                    a = (Char)(tempValue + (int)'1');
                    break;
                }
                Card vm = new Card//初始化赋值卡牌属性
                {
                    value = a,
                    color = cardColor[colorIndex],
                    xia   = cardXia[i]
                };
                cardList.Add(vm);
            }
            for (int i = 0; i < cardWang.Length; i++)  //无点数牌====王
            {
                Card vm = new Card
                {
                    color = cardWang[i],
                    xia   = wangXia[i]
                };
                cardList.Add(vm);
            }
            List <Card> ShuffleCardEnd = ShuffleCard(cardList);
            /////斗地主四人打牌51张分配,一次性发完个人的牌,留最后3张底牌
            List <Card> one   = new List <Card>();
            List <Card> tow   = new List <Card>();
            List <Card> three = new List <Card>();
            List <Card> four  = new List <Card>();
            List <Card> glide = new List <Card>();

            for (int i = 0; i < ShuffleCardEnd.Count; i++)
            {
                if (i < 13)
                {
                    Card vm = new Card()
                    {
                        color = ShuffleCardEnd[i].color,
                        value = ShuffleCardEnd[i].value,
                        xia   = ShuffleCardEnd[i].xia
                    };
                    one.Add(vm);
                }
                else if (i < 26)
                {
                    Card vm = new Card()
                    {
                        color = ShuffleCardEnd[i].color,
                        value = ShuffleCardEnd[i].value,
                        xia   = ShuffleCardEnd[i].xia
                    };
                    tow.Add(vm);
                }
                else if (i < 39)
                {
                    Card vm = new Card()
                    {
                        color = ShuffleCardEnd[i].color,
                        value = ShuffleCardEnd[i].value,
                        xia   = ShuffleCardEnd[i].xia
                    };
                    three.Add(vm);
                }

                else if (i < 51)
                {
                    Card vm = new Card()
                    {
                        color = ShuffleCardEnd[i].color,
                        value = ShuffleCardEnd[i].value,
                        xia   = ShuffleCardEnd[i].xia
                    };
                    four.Add(vm);
                }
                else
                {
                    Card vm = new Card()
                    {
                        color = ShuffleCardEnd[i].color,
                        value = ShuffleCardEnd[i].value,
                        xia   = ShuffleCardEnd[i].xia
                    };
                    glide.Add(vm);
                }
            }
            //输出
            Console.WriteLine("发牌每人得到:");
            Console.Write("one手上的牌是:");
            ShowCard(one);
            Console.Write("tow手上的牌是:");
            ShowCard(tow);
            Console.Write("three手上的牌是:");
            ShowCard(three);
            Console.Write("four手上的牌是:");
            ShowCard(four);
            Console.WriteLine();
            Console.WriteLine("===========================");
            Console.Write("低牌是:");
            ShowCard(glide);
            Console.WriteLine();
            Console.WriteLine("各自手上排序后:");
            Console.Write("one手上的牌是:");
            ShowCards(one);
            Console.Write("tow手上的牌是:");
            ShowCards(tow);
            Console.Write("three手上的牌是:");
            ShowCards(three);
            Console.Write("four手上的牌是:");
            ShowCards(four);
            Console.ReadLine();
        }