C++程序课程设计报告_21点游戏(2)
else if(hands[num][i].suit==DIAMONDS) cout<<"方块"; //DIAMONDS表示方块
else if(hands[num][i].suit==HEARTS) cout<< "红桃"; //HEARTS表示红桃
else if(hands[num][i].suit==SPADES) cout<<"黑桃"; //SPADES表示黑桃 //输出面值
if (hands[num][i].rank==ACE) cout<<"A"; //ACE表示A
else if(hands[num][i].rank==JACK) cout<<"J"; //JACK表示J else if(hands[num][i].rank==QUEEN) cout<<"Q"; //JACK表示Q else if(hands[num][i].rank==KING) cout<<"K"; //JACK表示K else cout<<(int)hands[num][i].rank; }
if(!hideFirstCardAndTotalScore)
cout<<"总分值"<<GetTotalScore(hands[num],numOfCard[num]); cout<<endl;
if(GetTotalScore(hands[num],numOfCard[num])>21) cout<<name[num]<<"引爆!"<<endl; }
void GameOf21Point::Game() {
Shuffle(); //洗牌 int i,j;
//为庄家发两张牌 for(i=0;i<2;i++)
hands[0][numOfCard[0]++]=DealOneCard();
ShowStatus(0,true); //显示庄家状态,隐藏首张牌与总分 //向各玩家发牌并显示
for(i=1;i<=numOfPlayer;i++) {
for(j=0;j<2;j++)
hands[i][numOfCard[i]++]=DealOneCard(); ShowStatus(i); }
cout<<endl;
//依次向各玩家发额外的牌 for(i=1;i<=numOfPlayer;i++) {
char Ans;
cout<<name[i]<<",你还想再要一张牌吗?再要请输入y,不要请输入n:";
cin>>Ans;
//玩家选择再要一张牌,如果玩家没有引爆则继续发牌 //switch(Ans) //{
while(Ans!='y' && Ans!='n') {
cout<<"你的输入不正确,请重新输入。"<<endl;
cout<<name[i]<<",你还想再要一张牌吗?再要请输入y,不要请输入n:";
cin>>Ans; }
while (GetTotalScore(hands[i],numOfCard[i])<=21&&Ans=='y') {
hands[i][numOfCard[i]++]=DealOneCard(); ShowStatus(i);
//玩家引爆则跳出循环
if(GetTotalScore(hands[i],numOfCard[i])>21) break;
cout<<name[i]<<",你想再要一张牌吗?再要请输入y,不要请输入n:";
cin>>Ans; } //} }
ShowStatus(0); //显示庄家
//庄家总分小于等于16,必须再拿牌
while(GetTotalScore(hands[0],numOfCard[0])<=16) {
hands[0][numOfCard[0]++]=DealOneCard(); //为庄家发1张牌 ShowStatus(0); //显示庄家 }
cout<<endl;
//庄家引爆,没有引爆的所有人赢
if(GetTotalScore(hands[0],numOfCard[0])>21) {
for(i=1;i<=numOfPlayer;i++) { //依次查看每位玩家
if(GetTotalScore(hands[i],numOfCard[i])<=21)
cout<<name[i]<<",恭喜你,你赢了!"<<endl;//玩家没有引爆 else cout<<name[i]<<",唉,你打平局了!"<<endl;//玩家引爆 } } else
{//庄家没有引爆,依次查看每位玩家 for(i=1;i<=numOfPlayer;i++) {//总分比庄家大
if(GetTotalScore(hands[i],numOfCard[i])<=21&&
GetTotalScore(hands[i],numOfCard[i])>GetTotalScore(hands[0],numOfCard[0]))
{//玩家未引爆,且总分比庄家大,玩家赢
cout<<name[i]<<",恭喜你,你赢了!"<<endl; } else
if(GetTotalScore(hands[i],numOfCard[i])==GetTotalScore(hands[0],numOfCard[0]))
{//玩家总分与庄家相等,平局
cout<<name[i]<<",唉,你打平局了!"<<endl; } else
{//玩家引爆或总分比庄家小,玩家输
cout<<name[i]<<",对不起,你输了!"<<endl; } } } }
int main() {
char AgainGame; do {
GameOf21Point objGame; //生成21点游戏对象 objGame.Game();
cout<<endl<<"****你想再玩一次吗,再玩请输入y,退出请输任意内容并回车:";
cin>>AgainGame;
} while(AgainGame=='y'); return 0; }
六、 测试情况
左侧这测试的是游戏结束的时候询问 玩家是否继续游戏的命令。
do { } while(AgainGame=='y');从测试结果看。 可以知道当输入为 y 时 才会继续游戏。输入其他内容时将会结束 游戏。
左侧的内容是进行一次三人的游戏过 程。
七、 小结
课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C++语言又是最常见,功能最强大的一种高级语言,因此做好C++语言课程设计是十分必要的。
通过几天的课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次真真的做程序设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针 通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。
我做的课程设计,虽然是很简单的一个小的程序,但对我来说却是一个很大的困难。更加是第一次做课程设计,所以在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。
开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多功能上的欠缺和漏洞,可我还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C++语言的一次实践作业,自己进步的证明。
在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!
八、 参考文献
C程序设计教程 谭浩强 著 清华大学出版社
C++面向对象程序设计 陈维兴 林小茶 编著 中国铁道出版社
…… 此处隐藏:1736字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [初中教育]婚姻家庭法学教学教案
- [初中教育]浅谈小学语文教学中的创新教育
- [初中教育]中华人民共和国侵权责任法2009
- [初中教育]2016-2022年中国薄膜太阳能电池行业发
- [初中教育]多级轻型井点降水的应用
- [初中教育]外语教学法流派介绍和简评
- [初中教育]实验一、典型环节及其阶跃响应
- [初中教育]内蒙古2012-2013学年度国家奖学金获奖
- [初中教育]移动通信营销渠道管理探讨
- [初中教育]初三化学第一学期第一第二章基础知识点
- [初中教育]一天的食物教学设计
- [初中教育]光导照明系统的基本结构及工作原理
- [初中教育]长春市十一高、东北师范大学附属中学、
- [初中教育]“十三五”规划重点-配重式装卸车项目
- [初中教育]领导方法和领导艺术
- [初中教育]第三章 植物病虫草鼠害诊断与防治基
- [初中教育]2019届九年级语文上册 第二单元 6纪念
- [初中教育]甲级单位编制水豆腐项目可行性报告(立
- [初中教育]Ch8-1补充 09101数据库系统原理及应用-
- [初中教育]2017-2023年中国吊装设备行业市场分析
- 制作毕业纪念册需要哪些材料
- 2015-2016学年高二化学苏教版选修4课件
- 哈佛管理导师-创建商业案例
- 职场交际中的谈吐礼仪知识与职场会议接
- 中国糕点及面包行业发展现状与竞争战略
- 沂河“12·7”洪水茶山拦河坝
- 管道水流量计算公式
- 4-2发电机火灾事故处置方案
- 数字信号处理实验五
- 2009年经济师(中级)金融专业知识全真试
- 历史街区保护规划--04历史文化遗产保护
- 宁夏回族自治区中小学职称评价标准
- 评先评优测评表
- 圆的切线证明及线段长求解在在中考中的
- 【解析版】2015年江苏省南京外国语学校
- 人教版八年级上册科学第一章习题精华
- 责任心与执行力
- SA8000社会责任管理体系标准培训
- IgA肾病的饮食应注意
- 杭州市建设工程文件归档整理方案(试行)




