首页 纸牌游戏:十点半

纸牌游戏:十点半

举报
开通vip

纸牌游戏:十点半纸牌游戏:十点半计算机技术基础课程设计C语言设计报告题目:纸牌游戏:十点半学院:化学工程学院专业:制药工程班级:050607班姓名:李艳明指导教师:设计日期:2007年1月10日不能再要牌。玩家牌的总点数一旦超过10.5,不能再要牌,J,Q,K算为半点。如果玩家牌的总点数都大于或小于10.5,点大者胜;如果有大于也有小于10.5,则点数最小者赢。(二)任何一张纸牌都有其本身的属性:花色,数值及起其所代表的点数。为将这些特征表示出来,特定义一个结构体数组来表示一副扑克牌,由于十点半游戏中不需要大小王,故可以定义如下:...

纸牌游戏:十点半
纸牌游戏:十点半计算机技术基础课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 C语言设计 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 题目:纸牌游戏:十点半学院:化学 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 学院专业:制药工程班级:050607班姓名:李艳明指导教师:设计日期:2007年1月10日不能再要牌。玩家牌的总点数一旦超过10.5,不能再要牌,J,Q,K算为半点。如果玩家牌的总点数都大于或小于10.5,点大者胜;如果有大于也有小于10.5,则点数最小者赢。(二)任何一张纸牌都有其本身的属性:花色,数值及起其所代 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 的点数。为将这些特征表示出来,特定义一个结构体数组来表示一副扑克牌,由于十点半游戏中不需要大小王,故可以定义如下:Structbook{intcolor;charnumber;floatnum;}Card[52];(三)不论何种扑克游戏都有其必经的三个步骤:一是有一副牌(即牌的初始化)二是洗牌,三是发牌。这三个步骤在程序中通过三个函数来实现:voidBuild_Show(intHuaSe[],floatDianShu[],charShuZi[]);voidWash_Card(void);voidGet_Card(intn);三.流程图for调用函数do循环调用函数终止Main()函数流程图Build_Show()的流程图Wash_Card()的流程图forforRand1!=rand2产生rand1,rand2i<1000i=0j++j<13j=0fori<4i=0i++交换牌Card[j+13*i].color=HuaSe[i]Card[j+13*i].number=ShuZi[i]Card[j+13*i].num=DianShu[i]结束puts()i++fori=0,j=0j<52j%13==0\nprintf()结束Get_Card()的流程图DuoRen()的流程图调用函数调用函数if每个人都拿第一张牌n==4n==1当所有人都不能拿牌时结束循环人与电脑游戏并输出游戏结果调用函数Duo_Ren()公布结果,由各人的点数可知调用结束调用结束四。程序清单#defineN5#include#includestructbook{intcolor;charnumber;floatnum;}Card[52];/*Tostorethecolor,numberandthepoints*/voidBuild_Show(intHuaSe[],floatDianShu[],charShuZi[]);/*Establishapairofcardsandshowittotheplayer*/voidWash_Card(void);/*Washthecards*/voidGet_Card(intn);/*Givetheplayercardsandtheresult*/voidDuoRen();intmain(void){intflag,n;intHuaSe[4]={3,4,5,6};/*Storethecolor*/charShuZi[13]={'A','K','Q','J','0','9','8','7','6','5','4','3','2'};/*Storethenumber*/floatDianShu[13]={1,0.5,0.5,0.5,10,9,8,7,6,5,4,3,2};/*Storethepoints*/Build_Show(HuaSe,DianShu,ShuZi);/*Establishthecardandshowit*/do{Wash_Card();/*Washcards*/a:puts("\nPleaseinputthenumberoftheplayer:");scanf("%d",&n);switch(n){case1:puts("Youplaywiththecomputer!");break;case2:puts("Youtwoplay!");break;case3:puts("Youthreeplay!");break;case4:puts("Youfourplay!");break;case5:puts("Youfiveplay!");break;case6:puts("Yousixplay!");break;case7:puts("Yousevenplay!");break;case8:puts("Youeightplay!");break;default:puts("Thenumberoftheplayersistoolarge!");gotoa;}Get_Card(n);/*Handoutthecardsandgivetheresult*/do{puts("\nDoyouwanttoplayagain?1representsyesand0no:");scanf("%d",&flag);}while(flag!=1&&flag!=0);}while(flag==1);}voidBuild_Show(intHuaSe[],floatDianShu[],charShuZi[]){inti,j;for(i=0;i<4;i++)/*Establishapairofcards*/for(j=0;j<13;j++){Card[j+13*i].color=HuaSe[i];Card[j+13*i].number=ShuZi[j];Card[j+13*i].num=DianShu[j];}puts("Thisisanewpairofcards:");/*Showthewholepairtotheplayerstocheck*/for(i=0,j=0;i<52;i++,j++){if(!(j%13))printf("\n");printf("%c%c",Card[i].color,Card[i].number);}}voidWash_Card(void){inti,rand1,rand2,hua;chardian;floatshu;for(i=0;i<1;i++){rand1=random(52);/*Getacardbyrandom,andputthecardsintomess*/rand2=random(52);if(rand1!=rand2)hua=Card[rand1].color;Card[rand1].color=Card[rand2].color;Card[rand2].color=hua;dian=Card[rand1].number;Card[rand1].number=Card[rand2].number;Card[rand2].number=dian;shu=Card[rand1].num;Card[rand1].num=Card[rand2].num;Card[rand2].num=shu;}}voidGet_Card(intn)/*Handoutthecardsonebyoneandgivetheresult*/{inti=0,j=0,k=0,flag=1,flag2=1;floatsum_m=0,sum_c=0;structbookMan[52],Computer[52];if(n==1){while(flag==1&&i<52){Man[j++]=Card[i++];/*Mangetsthecardfirstly*/sum_m+=Man[j-1].num;/*Acumulatethewholepointsoftheman*/if(flag2==1&&i<52&&(sum_m<=10.5&&sum_c<=10.5&&(sum_c+Card[i].num)<=10.5||sum_m>10.5&&(sum_c+Card[i].num)>=sum_m))/*Letthecomputerknowwhatthenextcardisanddecidewhethertogetacard*/{Computer[k++]=Card[i++];/*Thecomputergetsacard*/sum_c+=Computer[k-1].num;/*Acumulatethewholepointsofthecomputer*/}elseflag2=0;printf("\n");puts("Nowthecardsyougetare:");for(i=0;i10.5&&(sum_c+Card[i].num)>=sum_m))/*Letthecomputerknonwswhatthenextcardisanddecidewhetertogetone*/{Computer[k++]=Card[i++];sum_c+=Computer[k-1].num;if(sum_c>10.5)break;}puts("Okay,nowgiveouttheresult:");puts("Nowthecardsyou'vegotare:");for(i=0;i10.5&&sum_c>10.5)||(sum_m<=10.5&&sum_c<=10.5))if(sum_m>sum_c)puts("Youwinthecomputer!It'sunbelievable!");elseif(sum_m==sum_c)puts("Youplayaswellasthecomputer,andyou'rereallygood.");elseputs("Thecomputerwinsandyouneedmorepractice!");elseif(sum_m<=10.5&&sum_c>10.5)puts("Youwinthecomputer!It'sunbelievable!");elseputs("Thecomputerwinsandyouneedmorepractice!");}elseDuoRen();}voidDuoRen(){structbookMan[N][52];inti,a[N]={0},k=0,flag[N],flag2=1,s=0,m=0;floatsum[N]={0},q,t;for(i=0;i10.5)flag[i]=0;}s=0;for(k=0;k 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 及技术关键由于多维数组形如a[][]中第一个下标之中可以没有数字,如果有只能是确定的数,所以通过二维数组来建立一个可供任意人数游戏的想法不成立。为了达到以上目的,我在程序中使用了一个宏定义#defineN5,当需要改变游戏的人数时候,只要改变N的值即可,这样,这个问题就通过宏定义解决了。六.计结果说明优点:使用电脑程序使得十点半游戏可以在电脑上模拟进行,并且可以在原理上满足任意人数的游戏,但由于一副扑克牌只有五十四张,所以人数不应该超过八人。同时,通过程序可以直接明白是何人赢得游戏。缺点:虽然程序可以在宏定义的处理下进行一定任意人数的游戏,但是毕竟每次需要更换游戏人数时都要去修改N的值,比较麻烦,并不能直接进行任意人数的游戏。另外,在人数在二人以上时,我们只能从各人的点数,通过游戏规则来判断胜者为谁,程序没有直接输出,这是需要改进的。
本文档为【纸牌游戏:十点半】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
文艺人生
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:36
分类:
上传时间:2023-03-17
浏览量:2