- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
纸牌游戏设计报告精要
纸牌游戏设计报告1.问题描述:本次设计通过C语言编写程序实现对图像一般的基本处理,本次设计主要是52张纸牌除去大小王,玩家4位;需要实现以下功能。设计一个菜单界面,上面分别有1.发新牌、2.洗牌发牌、3.按点数理牌、4退出。当点击“1.发新牌”,会转换到一个新的发牌界面上,在这个界面上实现四位玩家中每位玩家的牌都是按照同一花色从小到大的排列界面(其中A最小,K最大),而且最后还能返回到菜单界面;同样当点击“2.洗牌发牌”,发牌界面上四位玩家中牌是随机排列没有特定的规律,但是要注意的是每位玩家的牌都是不相同的;当点击“3.按点数发牌”,发牌界面上四位玩家的牌是随机发牌之后按照从小到大的顺序依次排列;当点击“4.退出”,退出菜单界面结束程序的运行。2.模块划分:此次设计主要有四个模块,它们分别是菜单模块、发新牌模块、洗牌发牌模块、按点数理牌模块;它们的之间的关系如下所示它们所对应的界面转换关系如下:算法设计:(1)52张纸牌图片的放置:第一步:开辟一个存放52张纸牌地址的一维数组a[52],定义变量i,x;第二步:将这52张纸牌按照特定的顺序特定的顺序加载到这个数组中去;第三步:利用4个for循环语句控制每张图片输出的位置—putimage()函数;第四步:设置一个清屏函数system(“cls”),当按下键盘上Enter键退出该界面。(2)随机数组b[52]的生成:第一步:定义三个变量i,j,tmp;第二步:设置一个随机种子srand((unsigned)time(NULL));第三步:利用for循环生成52个随机数;第四步:利用while循环生成每个随机数;第五步:在while循环下,在利用for循环判断生成的随机数与之前生成随机是否相同,相同执行break语句结束循环生成新的随机数,再次进行比较;如果不相同则存放到数组中去;最后将这个数组返回到主函数中去。(3)随机数组b[52]按一定顺序排列:第一步:定义三个变量i,j,temp;第二步:利用4个嵌套的for循环语句来实现每位玩家的13张纸牌按照从小到大的顺序排列;第三步:在每个嵌套的for循环中利用b[i]%13来确定每张纸牌的大小,如果后一张牌比前一张牌小,则交换它们的位置,最后返回这个数组b[52]到主函数中去。(4)鼠标的生成:第一步:定义一个鼠标按键信息MOUSEMSG msg;第二步:设置一个鼠标函数msg=GetMouseMsg();第三步:利用一个if语句判断鼠标左键是否按下msg.uMsg==WM_LBUTTONDO-WN;第四步:在if语句下根据鼠标函数msg.x,msg.y的范围生成字符‘1’、‘2’、‘3’、‘4’,最后这四个字符返回发到主函数中去。主函数实现调用函数的功能:第一步:定义调用函数数组范围的值SIZE=52;图片的大小initgraph();flag初始化-flag=0;第二步:利用while(flag=0)循环判断是否执行相应的函数调用;第三步:利用switch-case语句来调用相应的函数,其中case的值是上述返回的字符‘1’、‘2’、‘3’、‘4’;第四步:当case=‘1’执行发新牌功能; 当case=‘2’执行洗牌发牌功能; 当case=‘3’执行按点数理牌功能; 当case=‘4’flag=1,结束while循环,退出程序。4.详细设计:整个程序函数之间的关系如下所示以下是本次设计函数功能描述:(1)菜单界面的函数DispMenu1()是基于c语言利用easy.h库函数将菜单背景图片展示在出来,其中loadimage加载图片,putimage放置图片;(2)菜单选择函数ChooseMenu()是并且在其中利用easy.h库函数鼠标函数的功能来实现,其中MOUSEMSG msg是鼠标定义信息,利用if语句,当鼠标按下左键键函数msg==WM_LBUTTONDOWN和1.发新牌、2.洗牌发牌、3.按点数理牌、4.退出在菜单背景图片msg.x和msg.y的范围来控制产生四个字符‘1’、‘2’、‘3’、‘4’;并将字符返回给主函数; 类似于(1)将52张纸牌的背景函数DispMenu2();纸牌展示函数ShowCard()利用zasy.h库函数将52张纸牌图片的地址加载到一个一维数组a[52]中去,在此过程中利用四个for循环控制每张纸牌图片在背景图片上的位置以及它们之间的间距,在该函数还设置了一个清屏功能“system(cls)”用来返回主菜单操作;发新牌函数NewCard(),就是定义一个一维数组b[52],通过for循环给这个一维数组赋值,数组中每个元素的值等于该该下标;洗牌发牌函数Shuffle(),就是定义一个一维数组b[52],利用随
您可能关注的文档
最近下载
- 辽宁省社区工作者招聘笔试真题.pdf VIP
- 2_H3G-TA硬件安装调试手册(CM-02N)B2版(对外公开)华塑电池巡检仪.pdf VIP
- 超实用高考英语复习:阅读理解话题分类专练 文娱与体(含答案).docx VIP
- 民航法律法规教案【参考】.doc VIP
- 实验室生物安全管理手册(2025版).pdf VIP
- 名著导读(朝花夕拾).ppt VIP
- 民航法律法规与实务(全套课件).ppt
- 服装包装、配送、检验、验收及售后服务方案.docx VIP
- 高中英语人教版选择性必修第一册词汇表单词英译汉默写.docx VIP
- 2025年辽宁省锦州市北镇市观音阁街道招聘社区工作者考前自测高频考点模拟试题含答案解析.docx VIP
文档评论(0)