zoukankan      html  css  js  c++  java
  • [原]用C#模拟实现扑克牌发牌、排序程序。

    (1)52张扑克牌,四种花色(红桃、黑桃、方块和梅花),随机发牌给四个人。

    (2)最后将四个人的扑克牌包括花色打印在控制台上。

    其中:

        花色和点数用枚举类型实现

        每张扑克牌用结构实现

    **************************************************************************************************


    using System;
    using System.Collections.Generic;
    using System.Collections;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    //用C#模拟实现扑克牌发牌、排序程序。
    //(1)52张扑克牌,四种花色(红桃、黑桃、方块和梅花),随机发牌给四个人。
    //(2)最后将四个人的扑克牌包括花色打印在控制台上。
    //其中:
    //	花色和点数用枚举类型实现
    //	每张扑克牌用结构实现
    //提示:可以用ArrayList初始化52张扑克牌,然后从这个链表中随机取牌发给四个玩家,直到链表为空为止。
    
    namespace Test5
    {
        enum Color {HongTao=-1,HeiTao=-2,MeiHua=-3,FangPian=-4}//花色
        enum Point {A,two,three,four,five,six,seven,eight,nine,ten,J,Q,K}//点数
        struct Poker
        {//扑克
            private string p1,p2;
            public Poker(string p1, string p2)
            {
                // TODO: Complete member initialization
                this.p1 = p1;
                this.p2 = p2;
            }
            public void Printp()
            {
                Console.Write("({0},{1}) ", this.p1,this.p2);
            }
        }
        class Program
        {
            
            static void Main(string[] args)
            {
                Poker po = new Poker();
                ArrayList myPoker=new ArrayList();//实例化一个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)
                            ));
                    }
                }//for循环结束,52张扑克牌已经生成
                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();
            }
        }
    }


    作者:gcy77 发表于2013-12-26 19:35:20 原文链接
    阅读:225 评论:0 查看评论
  • 相关阅读:
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    210 Course ScheduleII
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    sql 开发经验
  • 原文地址:https://www.cnblogs.com/gcy77/p/4082495.html
Copyright © 2011-2022 走看看