1、纸牌游戏的设计与实现 副本剖析* 计 算 机 系数据结构课程设计报告书 纸牌游戏的设计与实现学生姓名:*学 号:*年级专业及班级:201*级计算机工程系(*)班指导老师及职称:*专 业:计算机科学与技术专业 *提交日期:201*年6月 摘要关键字前言需求分析概要设计数组抽象数据类型定义本程序包含模块(1)主程序模块(2)纸牌翻转模块-翻转纸牌运行环境(软硬件环境)开发工具和编程语言详细设计调试分析测试结果附录(源代码)致谢纸牌游戏的设计与实现 学 生:*指导老师:*摘要关键字翻纸牌的简单游戏,有动画翻动的过程,链表,随机数,结构体前言1.需求分析2.概要设计1.数组抽象数据类型定义:对纸牌进行
2、翻转与实现void fangzhuang(SL L) 主函数int main()基本操作Fanzhuan(L);操作结果:对纸牌进行翻转的实现与显示随机数的结构体typedef struct pocker;主页void zhuye()2.本程序包含模块:(1)主程序模块#define MAXSIZE 100 /给数组定义一个空间/纸牌的信息typedef struct RedType;typedef structSL;(2)纸牌翻转模块-翻转纸牌各模块关系如下:3.运行环境(软硬件环境)运行的的软件环境:windows 2000,windowsXP,windows7运行所需要的硬件设备:PC机
3、一台4.开发工具和编程语言开发工具:Visual C+编程语言:C语言5.详细设计1.根据题目要求的数组存储结构#define MAXSIZE 100/给数组定义一个空间typedef struct /卡片的数目和标记 int num; /牌号 int visit; /牌的正反面 RedType; /纸牌的信息 typedef struct /卡片的结构体 RedType rMAXSIZE+1; /纸牌数组 int length;SL;随机数的结构体typedef struct /随机数的结构体 int a; int d;pocker;2.对纸牌进行翻转的动画与显示void fangzhuan
4、g(SL L) / 实现卡片翻转 system(cls); /清频 int i,j,n,t; cout|*|n n; cout|*|n; for(i=1;i=n;i+) /底牌全部都是盖住的 if(L.ri.visit=0) printf(%c t,2); Sleep(100); coutendl; cout|*|n; Sleep(1000); pocker *s; s=new pockern+1; srand(unsigned)time(NULL); for(i=1;i=1) if(si.d!=sj.d|si.a!=sj.a) j-; else si.a=rand()%(13-1+1)+1;
5、 si.d=rand()%(4-3+1)+3; j=i-1; for(i=2;i=n;i+) /从第二张开始往后 for(j=i;j=n;j+) /以基数开始翻 if(L.rj.num%i=0) /当是i的倍数时翻转 if(L.rj.visit=0) /正面翻反面 L.rj.visit=1; else L.rj.visit=0; cout从i开始为基数地翻endl; for(j=1;j=1&sj.a=10) /正面 printf(%d%c t,sj.a,sj.d); else if(sj.a=11) printf(J%c t,sj.d); else if(sj.a=12) printf(Q%c
6、 t,sj.d); else if(sj.a=13) printf(K%c t,sj.d); Sleep(100); /让卡片有停顿的时间,像动画的样子 coutendl; cout|*|n; Sleep(1000); cout|*|n 这时是正面的编号为:endl; for(i=1;i=n;i+) /输出这时正面向上的牌有哪些 if(L.ri.visit=1) coutL.ri.num ; coutendlendl; cout|*|n; coutnnendl;6.调试分析输入n,先是动画显示,最后显示正面向上的牌有哪些7.测试结果8.附录(源代码)#include#include#inclu
7、de#include#includeusing namespace std;#define MAXSIZE 100typedef struct /随机数的结构体 int a; int d;pocker;typedef struct /卡片的数目和标记 int num; /牌号 int visit; /牌的正反面 RedType; /纸牌的信息 typedef struct /卡片的结构体 RedType rMAXSIZE+1; /纸牌数组 int length;SL;void zhuye() /主页 system(COLOR 3a); cout|*|n |-这是一个纸牌游戏-|n |*|n |
8、 |n | * * * * * |n | * * * * * |n | * * * * |n | * * * * * * |n | * * * * |n | * * * * * * * * |n | * * * * |n | * * * * |n | |n | |n |*|n |-你确定要玩吗?-|n |-1-是-|n |-0-不是-|n |*|n; cout你选择的选项:n; void fangzhuang(SL L) / 实现卡片翻转 system(cls); /清频 int i,j,n,t; cout|*|n n; cout|*|n; for(i=1;i=n;i+) /底牌全部都是盖住的
9、 if(L.ri.visit=0) printf(%c t,2); Sleep(100); coutendl; cout|*|n; Sleep(1000); pocker *s; s=new pockern+1; srand(unsigned)time(NULL); for(i=1;i=1) if(si.d!=sj.d|si.a!=sj.a) j-; else si.a=rand()%(13-1+1)+1; si.d=rand()%(4-3+1)+3; j=i-1; for(i=2;i=n;i+) /从第二张开始往后 for(j=i;j=n;j+) /以基数开始翻 if(L.rj.num%i=
10、0) /当是i的倍数时翻转 if(L.rj.visit=0) /正面翻反面 L.rj.visit=1; else L.rj.visit=0; cout从i开始为基数地翻endl; for(j=1;j=1&sj.a=10) /正面 printf(%d%c t,sj.a,sj.d); else if(sj.a=11) printf(J%c t,sj.d); else if(sj.a=12) printf(Q%c t,sj.d); else if(sj.a=13) printf(K%c t,sj.d); Sleep(100); /让卡片有停顿的时间,像动画的样子 coutendl; cout|*|n
11、; Sleep(1000); cout|*|n 这时是正面的编号为:endl; for(i=1;i=n;i+) /输出这时正面向上的牌有哪些 if(L.ri.visit=1) coutL.ri.num ; coutendlendl; cout|*|n; coutnnz; switch(z) /选择 case 1: /选择1,玩 ge: SL L; for(i=1;i=52;i+) L.ri.num=i; L.ri.visit=0; /用0来记反面 fangzhuang(L); /结束第一次ti: while(1) /接下来的继续玩 cout|-你还想继续玩么?-|n |*|n |-1-不是-|
12、n |-0-是-|n y; if(y=1) fangzhuang(L); else if(y=0) cout谢谢!再见!endl; return 0; else cout你输入错误了!endl; cout请从新输入!endl; goto ti; break; case 0: /选择0,不玩 SL L;le: while(1) cout|*|n |-你肯定不玩么?-|n |-1-按错了-|n |-0-没意思-|n x; if(x=1) goto ge; else if(x=0) cout谢谢!再见!endl; return 0; else cout你输入错误了!endl; cout请从新输入!endl; goto le; break; default: /其他键,退出 cout你输入错误了!endl; cout请从新输入!endl; goto le; return 0;9.总结10.致谢参考文献1数据结构(C语言版) ,严蔚敏,李冬梅,吴伟明 编著 ,人民邮电出版社。2C程序设计(第三版) ,谭浩强著,清华大学出版社。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1