欢迎来到天天文库
浏览记录
ID:44225133
大小:84.70 KB
页数:7页
时间:2019-10-19
《21点高质量C语言程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、二十一点游戏是一款操作简单,老少皆宜,并且带有很强娱乐性的游戏。二十一点游戏也是我们学习c语言过程中用来锻炼我们编程能力的一种简单有效的方式。编写二十一点游戏的目的就是在编写过程中学习和掌握各种编程的能力,二十一点游戏中有我们经常接触到的一些头文件,和小的函数体,以及一些相关知识,能让我们在实践中得到锻炼。一、设计目的与要求1、程序设计的源程序功能如下:(1)将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。(2)程序屮一共有13张扑克牌可以随机抽取,大于10的点数为10,现要求大于10的点数全部为半点。(3)要求庄家永远不会暴庄,即庄家可以查看下一张牌,若大于21点,则拒绝,当
2、然,在游戏规则上不能泄露这点秘密。(4)高级玩家可以查看下一张牌,即按h键,然后按要求输入密码,密码正确可以看牌,并决定是否要牌。(5)每次要牌后可以设定赔率,即如果开始下的是10元钱的注,如果牌好,你可以要求再下注,当然不能超过你所有的总钱数。(6)将界面的提示说明改成中文界面,界面的解释详细友好,可以吸引更多的玩家。二、课程设计(1)题目要求把源程序封装在类中,需要编写一个类来封装所有相关函数和变量,同吋对main主函数进行改写,以完成题目的要求。(2)题目要求把抽到的大于10点的牌的点数设为半点,只需要设计随机取下一张牌的成员函数时用if语句判定牌的点数是否大于10,大于10的牌对其重
3、新赋值为0.5即可。(3)题目要求超级玩家在输入密码后可以查看下一张牌,只需设计一成员函数,判定玩家是否继续要牌之前加入对玩家是否输入h键的判定,如果有输入,则调用为处理玩家输入密码而单独编写的成员函数,在该函数屮,首先判定玩家的密码输入是否正确,不正确则返回0,正确则返回1。(4)题目要求玩家可以根据手上的牌决定是否下注,只需设计一成员函数,检查玩家的赌注累计不超过他所拥有的总资木。三、设计描述1、为满足上述第一条要求,在程序中增加了一个类play,封装到类中的函数有:voidreplay();//检测是否重玩voidhitplayer();//玩家要牌voidhitcpuO;//电脑要牌
4、voiddeal();//开始发牌voidBET();//加注voidprint();//打印最终结果voidrules();//显示规则voidresultsO;//判断获胜方intgetmoney();//读取钱数至主程序voidshuruansO;//输入判断用字符(如Y,S等)voidfirstbet();//首次下注;voidwriter(void);//写入文本文件voidload(void);//读取文本文件源程序已有的函数中,voidreplay(),voidrules(),voidresults(),voidprint()已经较为完善,仅需将其英文界面部分改为中文即可,而其
5、他函数则应按要求改写。2、为满足上述第二条要求,按一般玩法>二10的数本应该都按10來算,而这里这些书全都算作0.5,所以if(card>=10)card=0.5;即可。3、第三条要求较为困难,将原程序中的一个voidhit(int&total)函数改编为voidhitplayer()与voidhitcpuO两个函数,分别用来运行玩家及庄家的要牌过程。要求庄家永远不会暴庄,即是要让庄家可以看牌并判断要牌后点数是否超过21点。因此函数改写为:voidplay::hitcpu(void){floattotal;for(;(cpu<16)&&(cputurns<6);cputurns++){cou
6、t<=10)card=0.5;total=cpu+card;if(total<=21)cpu=total;cout<<,zttt庄家拿牌,,<7、:hitplayer(void){charstr[20];charc;nocheats二0;cout<>str;card=random(13,1);if(card>10){card=0.5;}if(strcmp(str,Password)=0){cout〈〈"下张牌是,/<>c;if(c
7、:hitplayer(void){charstr[20];charc;nocheats二0;cout<>str;card=random(13,1);if(card>10){card=0.5;}if(strcmp(str,Password)=0){cout〈〈"下张牌是,/<>c;if(c
此文档下载收益归作者所有