扑克牌发牌程序---计应192(西)—第六组—刘明辉
规则:
扑克牌发牌程序,四名选手打牌,电脑随机将五十二张牌(不含大小王)发给四名打牌者,在屏幕上显示每位牌手的牌。
分析:
将五十二张扑克牌按顺序0-51编号,其中梅花A-K 编号是0-12,黑桃A-K编号是13-25,方块A-K编号是26-38,红桃A-K编号是39-51,例如,黑桃2编号14,方块三编号是28.最初按序存入数组a中,洗牌过程中就是随机任意交换两个元素。输出牌手的牌是根据扑克牌编号n推算出排名。
Using System;
Namespace P2_19
{
Class Program
{
Static void Main (string []args){
int m, n, t, i;
int[] a = new int[52];
Random r = new Random();
for (i = 0; i < 52; i++)
a[i] = i;
for (i = 1; i <= 100; i++)
{
m = r.Next() % 52;
n = r.Next() % 52;
t = a[m]; a[m] = a[n]; a[n] = t;
}
for (m = 0; m <= 3; m++)
{
shuchupaishou(m, a);
}
Console.Read();
}
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);
}
static void shuchupaishou(int m, int[] a)
{
Console.WriteLine("{0}号?牌?手º?:êo", m + 1);
for (int i = 0; i <52; i++)
{
if (i % 4 == m)
{
pai(a[i]);
Console.Write("");
}
}
Console.WriteLine();
}
}
}
PSP 各个阶段 |
预估时间 (分钟) |
实际记录 (分钟) |
计划:明确需求和其他因素,估计以下的各个任务需要多少时间 |
|
|
开发(包括下面8项子任务) |
|
|
. 需求分析(包括学习新技术、新工具的时间) |
60 |
80 |
. 生成设计文档(整体框架的设计,各模块的接口,用时序图,快速原型等方法) |
25 |
35 |
. 设计复审 (和同事审核设计文档,或者自己复审) |
10 |
18 |
.代码规范(为目前的开发制定或选择合适的规范) |
15 |
22 |
.具体设计(用伪代码,流程图等方法来设计具体模块) |
25 |
35 |
.具体编码 |
30 |
40 |
.代码复审 |
10 |
15 |
.测试(自我测试,修改代码,提交修改) |
8 |
15 |
总共花费的时间(分钟) |
208 |
260 |