扑克牌发牌程序 计应192西 四组 朱康康

项目内容介绍:4个人打牌,电脑随即将52张牌发给4名打牌者,(不含大小王)。在屏幕上显示每位牌手的牌。

分析:将52张扑克牌按顺序0~51编号,其中梅花A-K编号是0~12,黑桃A~K编号是13~25,方块A~K的编号顺序是26~38,红桃A~K的编号是39~51。例如,黑桃2的编号是14,方块3的编号是28,最初按照顺序存入数组a中,洗牌过程就是随机任意交换2个元素。输出牌手的牌是根据扑克牌编号推算出牌名。

具体代码:

using System;

 

name space 扑克牌发牌程序

{

    class Program

    {

        static void Main(string[] Argos)

        {

            int m, n, t;

            //声明牌数

            int[] a = new int[52];

            Random r = new Random();

            for (int i = 0; i < 52; i++)

            {

                a[i] = i;

            }

 

            //洗牌

            for (int i = 1; i <= 100; i++)

            {

                m = r.Next() % 52;

                n = r.Next() % 52;

                t = a[m];

                a[m] = a[n];

                a[n] = t;

 

            }

            //输出4位牌手的手中牌

            for (m = 0; m <= 3; m++)

            {

                parachutist(m, a);

            }

            Console.Read Key();

        }

        //根据牌编号n推出牌名

        public static void pai(int n)

        {

            if (n < 13)

            {

                Console.Write("梅花{0}", n + 1);//梅花

            }

            else if (13 <= n && n < 26)

            {

                Console.Write("黑桃{0}", n - 12);//黑桃

            }

            else if (n < 39)

            {

                Console.Write("方块{0}", n - 25);//方块

            }

            else if (n < 52)

            {

                Console.Write("红桃{0}", n - 38);//红桃

            }

        }

 

        public static void parachutist(int m, int[] a)

        {

            Console.Interline("{0}号牌手", m + 1);

            for (int i = 0; i < 52; i++)

            {

                if (i % 4 == m)

                {

                    pai(a[i]);

                    Console.Write(" ");

                }

            }

            Console.Interline();

        }

 

}

 

随机输出:

1号牌手

梅花11 黑桃3 黑桃8 梅花9 黑桃10 方块5 方块4 方块12 黑桃4 方块13 黑桃9 黑桃5 红桃9

2号牌手

梅花13 红桃4 红桃8 红桃12 方块10 梅花4 方块7 红桃3 梅花12 方块6 梅花10 黑桃2 梅花3

3号牌手

梅花1 黑桃7 梅花5 黑桃13 方块8 红桃5 方块3 红桃13 红桃2 梅花2 方块11 黑桃12 红桃10

4号牌手

梅花8 梅花6 黑桃1 方块1 梅花7 红桃6 黑桃11 红桃1 黑桃6 方块9 红桃7 红桃11 方块2

 

PSP阶段

所花时间

说明

计划

10

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

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

8

 

开发

20

 

需求分析

7

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

生成设计方案

5

 

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

6    

 

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

4

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

具体设计

12

 

具体编码

15

 

代码复审

3

 

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

8

 

报告

3

 

测试报告

2

 

计算工作量

2

 

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

1

确实每次发牌都是随机发,建议将颜色相同的放一起最好。

 

 

 

 

朱康康

posted on 2021-04-11 13:34  计应192西四组  阅读(262)  评论(0编辑  收藏  举报

导航