名称:扑克发牌 计应192(西)第四组--张会鑫

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

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

分析: 花色和点数用枚举类型实现。

每张扑克牌用结构实现。

具体代码:

using System;

using System.Collections.Generic;

using System.Collections;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

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();

        }

    }

}

 

PSP阶段

所花时间

说明

计划

30

设计扑克牌发牌程序实现随机发牌

明确需求和其他相关因素,估计每个阶段的时间成本

10

 

开发

15

 

需求分析

8

考虑玩家的人数,以及牌的数量

生成设计方案

6

 

设计复审(和同事审核设计文档)

7

 

代码规范(为目前的开发制定合适的规范)

3

注意代码缩进及变量声明规范

具体设计

12

 

具体编码

15

 

代码复审

3

 

测试(自测,修改代码,提交修改)

8

 

报告

3

 

测试报告

2

 

计算工作量

2

 

事后总结,并提出过程改造计划

1

以保证每次发的牌不重复,并且是随机不连续的(炸弹也不是不可以)。

posted on 2021-04-12 13:44  计应192西四组  阅读(125)  评论(0)    收藏  举报

导航