C语言实现斗地主发牌程序(共9页).doc
《C语言实现斗地主发牌程序(共9页).doc》由会员分享,可在线阅读,更多相关《C语言实现斗地主发牌程序(共9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实验四、斗地主发牌程序的实现一、实验目的1. 了解线性表的顺序存储与基本操作;2. 了解线性表的链接存储与基本操作;二、实验工具VC6.0三、实验练习和要求3.1实验内容:1)考虑好纸牌的存储结构,定义好纸牌大小的比较规则;2)分别建立顺序线性表和链接线性表,可以进行定位删除,可以进行保序插入,可以进行顺序输出;3)利用上述线性表类,构造若干个线性表的实例,构造一个含有全部纸牌的线性表,从中随机抽取随机发给三家(每家17张),并保留底牌3张;4)按大小顺序分别输出各家的牌和底牌。3.2实验要求:1)利用王显示每家发得的牌和底牌(ASCII:5436);2)每家的牌要求
2、有序排列(数字中3最小,2最大,不同的花色按,王渐大处理);3)所发的牌是随机的;4)顺序线性表和链接线性表都要用到。3.3实验难点:1)如何存储一张牌;2)如何比较牌的大小(JQKA2);3)如何实现顺序表与链接表的无差别性?3.4实现提示1)54张牌可以用整数:0-53来表示,也可以用两个独立的整数来表示;2)用利用C语言的RAND()函数来产生随机数;3)牌的大小比较规则,除王比较大外,一般的牌先比较点儿数,再比较花色;4)建议用保序插入,而不要使用最后排序。3.5注意事项1)顺序表和链接表的操作接口要尽量一致;2)JQKA2中的10占两位?3)大王与小王的特殊处理。3.6本次实验可以三
3、人构成学习小组,上交一份作业,并给出每一个人贡献分数。四、实验内容本次实验分别使用顺序表和单链表实现,三人手中的牌都已经按照大小以及花色从小到大排序。代码如下: 顺序表实现随机发牌#include#include#include #include #define MaxSize 100typedef int dataType;typedef struct dataType dataMaxSize;int size ;SqList;SqList* CreateList(dataType a,int n)SqList*t=(SqList*)malloc(sizeof(SqList);for(int
4、 i=0;idatai=ai;t-size=n;return t;SqList* CreateListemp()SqList *t =(SqList *)malloc(sizeof(SqList);t-size=0;return t;void Exchange(SqList *l,int i,int j)int temp;temp=l-datai;l-datai=l-dataj;l-dataj=temp;int Min(SqList *l)int min=l-data0;for(int i=1;isize;i+)if(l-dataidatai; return min;void Delete(S
5、qList *l,int k)if (kl-size) exit(1);for (int i=k;isize;i+)l-datai-1 =l-datai;l-size-;int Locate(SqList *l,dataType x)for(int i=0;isize;i+)if(l-datai=x) return i+1;return 0;void Print(SqList *l)for (int i=0;isize;i+)printf(%d ,l-datai); SqList* Sort(SqList *pa)SqList *pb=CreateListemp();int M;for(int
6、 i=0;idatai=M;Delete(pa,Locate(pa,M);pb-size+;return pb;int main()int a54,i,j,N;int one17;int two17;int three17;int cover3; char *poker=梅花3,方块3,红桃3,黑桃3,梅花4,方块4,红桃4,黑桃4,梅花5,方块5,红桃5,黑桃5,梅花6,方块6,红桃6,黑桃6,梅花7,方块7,红桃7,黑桃7,梅花8,方块8,红桃8,黑桃8,梅花9,方块9,红桃9,黑桃9,梅花10,方块10,红桃10,黑桃10,梅花J,方块J,红桃J,黑桃J,梅花Q,方块Q,红桃Q,黑桃Q,
7、梅花K,方块K,红桃K,黑桃K,梅花A,方块A,红桃A,黑桃A,梅花2,方块2,红桃2,黑桃2,小王,大王; printf(顺序表实现:3个人,每人随机发17张牌,留3张底牌。nn) ;for(i=0,j=1;i54;i+)ai=j;j+;SqList *pl=CreateList(a,54);srand(unsigned)time(0);for(N=0;NMaxSize;N+)i=rand()%54;j=rand()%54;Exchange(pl,i,j);for(i=0,j=0;jdataj;for(i=0,j=17;jdataj;for(i=0,j=34;jdataj;for(i=0,j
8、=51;jdataj;SqList *first=CreateList(one,17);SqList *second=CreateList(two,17);SqList *third=CreateList(three,17);SqList *left=CreateList(cover,3);printf(-n); printf( 按照大小以及花色排序后的结果n); printf(-n); SqList *sortedfirst=Sort(first);SqList *sortedsecond=Sort(second);SqList *sortedthird=Sort(third);printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实现 地主 发牌 程序
限制150内