扑克牌发牌课程设计文档格式.docx

上传人:b****7 文档编号:22167374 上传时间:2023-02-02 格式:DOCX 页数:17 大小:1.44MB
下载 相关 举报
扑克牌发牌课程设计文档格式.docx_第1页
第1页 / 共17页
扑克牌发牌课程设计文档格式.docx_第2页
第2页 / 共17页
扑克牌发牌课程设计文档格式.docx_第3页
第3页 / 共17页
扑克牌发牌课程设计文档格式.docx_第4页
第4页 / 共17页
扑克牌发牌课程设计文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

扑克牌发牌课程设计文档格式.docx

《扑克牌发牌课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《扑克牌发牌课程设计文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

扑克牌发牌课程设计文档格式.docx

2.1.2使用控件3

2.2洗牌3

2.2.1产生随机数3

2.3发牌3

2.3.1发牌思想3

2.3.2排序3

2.4整体排序思想3

3.效果展示5

4.附录:

程序代码6

1.1设计要求

1、两副牌升级游戏的发牌程序。

四人游戏,底牌8张。

2、列出每人的牌。

3、将每人的牌按大王、小王、不同的花色的拖拉机、单对、单牌的顺序,每一类顺序中从大到小排列好。

4、其余功能自行扩展。

5、可以是图形用户界面程序也可以是命令行程序。

1.2编辑编译相关部分

1.2.1运行环境

运行环境:

windows7 

是由微软公司(Microsoft)开发的操作系统,本次操作用的是64为操作系统。

1.2.2编辑环境

编译环境:

VisualStudio是微软公司推出的开发环境。

是最流行的Windows平台应用程序开发环境。

2012年9月12日微软在西雅图发布VisualStudio2012。

其实早在8月16日VisualStudio2012和.NETFramework4.5已经可以下载,微软负责VisualStudio部门的公司副总裁JasonZander还发表博客,列举了升级到VisualStudio2012版的12大理由。

1.2.3编程语言

编程语言:

C#

C#是微软发布的一种面向对象的、运行于.netFramework之上的高级程序设计语言。

并定于在微软职业开发者论坛(PDC)上登台亮相。

C#是微软公司研究员AndersHejlsberg的最新成果。

C#看起来与Java有着惊人的相似;

它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。

但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。

1.3设计理念

关于拖拉机游戏扑克牌发牌程序的设计思想:

用数字1-108分别代表每张扑克牌的区分值(两幅扑克牌),利用产生随机数的方法对扑克牌进行洗牌和发牌,然后对产生的随机数进行排序来实现扑克牌的排列顺序。

2.软件内容相关

2.1图形界面设计

使用windows窗体应用程序构造图形化界面,利用控件分模块实现所要求的功能。

2.1.1图形界面的设计

窗体1(Form1,主界面)如图2-2-1

图2-2-1窗体

2.1.2使用控件

使用控件:

button,label,PictureBox.

2.2洗牌

2.2.1产生随机数

1)产生随机数

利用C#中的的random.Next(a,b)函数来产生1-108之间的随机数,并且将这108个数字存入数组当中。

其中两幅扑克牌的值定位:

黑桃A----K1----1355----67

梅花A----K14---2668----80

方块A----K21---3981----93

红桃A----K40---5294----106

小王53

大王54

2.3发牌

2.3.1发牌思想

1)设计思想

发牌的实质就是对数组中的数进行排序,根据拖拉机游戏的玩法,扑克牌的顺序依次为大王、小王、不同花色的拖拉机、单对、单牌的顺序,每一类顺序中从大到小的顺序排列好。

一共发4份牌,留8张底牌。

2)对大王,小王以及Ace的排序在扑克牌顺序的最大,其原理大同小异。

2.3.2排序

1)对单对的排序思想

从最开始的产生的1---108的随机数组成了数组名为Card的数组,到每个玩家的手中25张牌,可以分别对这25张牌的值进行对比,根据相同牌(单对)之间的关系,把单对找出来。

2.4整体排序思想

3.效果展示

图3-1效果展示1

图3-1效果展示2

5.参考书籍:

[1]沃森(KarliWatson),JacobVibeHammer,JonD.Reid,MorganSkinner等.编写C#程序,变量和表达式,流程控制,字符串的处理,面向对象编程简介等.C#入门经典(第6版)[平装].2014,1(3):

11~531,621~634.

程序代码

publicpartialclassForm1:

Form

{

intnum,i,j,k,m,d=0,temp,Ace=0;

intplace=0,sign=0;

int[]Card=newint[108];

publicForm1()

InitializeComponent();

}

privatevoidpictureBox7_Click(objectsender,EventArgse)

privatevoidForm1_Load(objectsender,EventArgse)

privatevoidbutton1_Click(objectsender,EventArgse)

Randomrandom=newRandom();

for(num=0;

num<

108;

)/**************************二幅牌********************************/

temp=random.Next(1,109);

//避免重复的方法

for(j=0;

j<

num;

j++)

if(temp==Card[j])

break;

if(num==j)

Card[num]=temp;

num++;

place=0;

Ace=0;

for(d=0;

d<

100;

d+=25)

set_single_card(54,108,d);

//大毛d---d+25

set_single_card(53,107,d);

//小毛

Sort_all(40,52,94,106,d);

//红桃

Sort_all(27,39,81,93,d);

//方块

Sort_all(14,26,68,80,d);

//梅花

Sort_all(1,13,55,67,d);

//黑桃

pictureBox101.Image=Image.FromFile(Card[100].ToString()+"

.jpg.jpg"

);

pictureBox102.Image=Image.FromFile(Card[101].ToString()+"

pictureBox103.Image=Image.FromFile(Card[102].ToString()+"

pictureBox104.Image=Image.FromFile(Card[103].ToString()+"

pictureBox105.Image=Image.FromFile(Card[104].ToString()+"

pictureBox106.Image=Image.FromFile(Card[105].ToString()+"

pictureBox107.Image=Image.FromFile(Card[106].ToString()+"

pictureBox108.Image=Image.FromFile(Card[107].ToString()+"

privatevoidset_card(intplace1,intcard,int[]Cad)

switch(place1)

case0:

pictureBox1.Image=Image.FromFile(Cad[card].ToString()+"

break;

case1:

pictureBox2.Image=Image.FromFile(Cad[card].ToString()+"

..

..

case97:

pictureBox98.Image=Image.FromFile(Cad[card].ToString()+"

case98:

pictureBox99.Image=Image.FromFile(Cad[card].ToString()+"

case99:

pictureBox100.Image=Image.FromFile(Cad[card].ToString()+"

privatevoidlabel1_Click(objectsender,EventArgse)

privatevoidset_single_card(intq,intw,intd)//单牌q或w(两幅扑克牌)循环范围d----d+25

sign=0;

for(j=d;

d+25;

if(Card[j]==q||Card[j]==w)//小毛

if(sign==0)

set_card(place,j,Card);

sign=1;

place++;

else

privatevoidsort(int[]array,intn)

inti,j,t;

for(i=0;

i<

n-1;

i++)//注意i的值!

n-1-i;

j++)//注意j的值!

if(array[j]<

=array[j+1])

t=array[j];

array[j]=array[j+1];

array[j+1]=t;

privatevoiddelete(int[]Cad,intvalue,intn)//删除数组长度为n的Cad中值为Value

inta,b;

for(a=0;

a<

n;

a++)

if(Cad[a]==value)

for(b=a;

b<

b++)

Cad[b]=Cad[b+2];

}

privatevoidSort_all(intq,intw,intt,intp,intd)//q--wt---p范围d--d+25

int[]Temp=newint[25];

int[]temp_=newint[25];

for(i=d,k=0;

25+d;

i++)4

if((Card[i]>

q)&

&

(Card[i]<

=w))

Temp[k]=Card[i];

k++;

elseif((Card[i]>

t)&

=p))//把相同的扑克处理成相同数字

Temp[k]=Card[i]-54;

sort(Temp,k);

//选择法排序Temp

for(i=0,m=0;

k;

i++)//提取单对

if(Temp[i]==Temp[i+1])

temp_[m]=Temp[i];

m++;

sort(temp_,m);

//选择法排序temp_

if(temp_[0]==0)//没有有单对

switch(Ace)

set_single_card(40,94,d);

Ace+=25;

case25:

set_single_card(27,81,d);

case50:

set_single_card(14,68,d);

case75:

set_single_card(1,55,d);

Ace=0;

i++)

set_card(place,i,Temp);

m;

i++)//放置单对

set_card(place,i,temp_);

delete(Temp,temp_[i],k);

sort(Temp,k-2*m);

k-2*m;

Temp=null;

temp_=null;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1