“21点”纸牌游戏实验报告_第1页
“21点”纸牌游戏实验报告_第2页
“21点”纸牌游戏实验报告_第3页
“21点”纸牌游戏实验报告_第4页
“21点”纸牌游戏实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计 报 告课程名称:面向对象程序设计与开发课程设计设计题目:“21点”纸牌游戏年 级:09系 别:计算机学院专 业:计算机科学与技术小组成员名单:陈坚鹏 李浩艺 陈子龙任课教师:莫家庆老师完成时间:2012年 3 月 30 日肇庆学院计算机学院课程设计结果评定评阅意见:(1)内容设计 (20分):优()、良()、中()、一般()、差(); (2)流程分析(20分):优()、良()、中()、一般()、差(); (3)数据定义(30分):优()、良()、中()、一般()、差();(4)代码编写(20分):优()、良()、中()、一般()、差();(5)创新能力(10分):优()、良()

2、、中()、一般()、差();(6)格式规范性、设计态度及考勤是否降等级:是()、否()其它意见:评阅人: 2012 年 月 日成绩等级:目 录“21点”纸牌游戏11 概述12 实验内容13 概要设计24 测试结果和分析55 课程设计体会5“21点”纸牌游戏1 概述本课程设计通过编写相关代码实现“21点”游戏。使用语言:c+语言编译环境:vc+ 6.02 实验内容1、问题描述“21点”是一个古老的扑克牌游戏,游戏规则是:各个参与者设法使自己的派达到总分21而不超过这个数值。扑克牌的分值取它们的面值,a充当1分或11分(由玩家自己选择一种分值),j、q和k人头牌都是10分。庄家对付17个玩家。在一

3、局开始时,包括庄家在内的所有参与者都有两张牌。玩家可以看到他们的所有牌以及总分,而庄家有一张牌暂时是隐藏的。接下来,只要愿意,各个玩家都有机会再拿一张牌。如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。只要庄家的总分等于或小于16,那么他就必须再拿牌。如果庄家引爆,那么还没有引爆的所有我那家都将获胜,引爆的玩家打成平局。否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。如果二者的总分相同,则玩家和庄家打成平局。基本要求:编写程序实现游戏,计算机作为庄家,17个人作为普通玩家参与游戏。游戏程运

4、行输出如下所示。多少人加入游戏?(17):2输入第1位玩家的姓名:张三输入第2位玩家的姓名:李四游戏开始:庄家:梅花7张三:红桃7方块j总分值17李四:红桃j红桃3总分值13张三,你想再要一张牌吗(y,n)?n李四,你想再要一张牌吗(y,n)?y李四:红桃j红桃3梅花10总分值23李四引爆!庄家:方块10,梅花7总分值17张三,唉,你打平局了!李四,对不起,你输了!你想再玩一次吗(y,n)?2、需求分析(1)测试边界内的值。(2)测试边界值。(3)测试边界外的值。(4)输出结果。3 概要设计1、存储结构typedef enum/扑克牌面值:ace(a),two(2)ten(10),jack(j

5、),queen(q),king(k)ace=1,two,three,four,five,six,seven,eight,nine,ten,jack,queen,kingranktype;typedef enum/扑克牌花色:clubs(梅花),diamonds(方块),hearts(红桃),spades(黑桃)clubs,diamonds,hearts,spadessuittype;struct card /扑克牌结构体ranktype rank; /扑克牌面值suittype suit; /扑克牌花色/21点游戏类gameof21point声明class gameof21pointpriva

6、te:card deck52; /一副扑克牌int dealpos; /发牌位置card hands821; /hand0存储于庄家手中的扑克牌, hand17存储于各位玩家手中的扑克牌int numofcard8; /庄家numofcard0及玩家numofcard17手中的扑克牌数char name8len_of_max_name; /庄家与玩家姓名int numofplayer; /玩家人数void shuffle(); /洗牌,将扑克牌混在一起以便产生一种随机的排列int gettotalscore(card hand21,int n); /返回一手扑克牌的总分值void showst

7、atus(int num,bool hidefirstcardandtotalscore=false); /显示庄家(对应num=0)或玩家(对应num0)当前的状态card dealonecard()return deckdealpos+; /发一张扑克牌public:gameof21point();virtualgameof21point()void game(); /运行游戏;2、函数ostream& operator(ostream& outstream, const card &card)/该函数用来重载0)当前的状态card dealonecard()return deckdealpos+; /该函数用来发一张扑克牌int gameof21point:gettotalscore(card hand21,int n )/返回一手扑克牌的总分值void game();/该函数实现游戏的运行,开始。3、流程图输入加入游戏的人数输入游戏者姓名游戏开始随机发牌开始玩家是否添牌添加一张牌,下个玩家显示庄家的牌点数21庄家引爆玩家是否引爆是打平局玩家赢是玩家是否引爆是玩家输否玩家点数是否大于庄家是否否玩家点数是否等于庄家是否显示结果再玩一次是否4 测试结果和分析

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论