




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+课程设计报告对抗游戏1、 实验目的: 1.加深对c+程序设计的理解,了解程序设计的流程。 2.增强对程序模块化思想的概念 3.加深对类、构造函数,析构函数,友元函数的理解。2、 实验内容: 1.阅读程序设计要求和源代码,理解和分类各部分的功能。 2.设计一个类内定义的函数,实现增加赌注的功能。 3.设计友元函数实现比大小的功能和输出结果功能。 4.写出main函数,整合各部分功能,完成程序。3、 实验环境:VC+6.04、 算法或核心技术介绍: 1.利用类,实现各部分的定义。 2.在友元函数中利用if函数实现比较大小的功能。5、 附件程序代码如下:#include "iostre
2、am"#include "math.h"#include "stdlib.h"#include "ctime"using namespace std;int flag;class CCard int nCard1,nCard2; /两张牌 static int nLoop; /出牌次数,游戏结束时给出总的出牌次数 int nScore; /总分 int nWin,nLose; static nDraw; /赢,输,平的次数 int nBet; /赌注 public: int Bet;CCard(); /构造函数 int Se
3、tCard(); /出两张牌 void Show(); /显示牌点 int AddBet(int); /增加赌注,失败返回0 void friend Compare(CCard&,CCard&); /友元函数,比较牌点大小,并显示结果 void friend ShowResult(CCard&,CCard&); /友元函数,输出输赢结果及最后积分 ;int CCard:nDraw=0;int CCard:nLoop=0;CCard:CCard()nScore=20;Bet=nScore;nWin=0;nLose=0;nBet=0;int CCard:SetCar
4、d()for(int i=0;i<=100000000;i+);srand(unsigned)time(0);nCard1=(rand()%13+1);nCard2=(rand()%13+1);return nCard1;void CCard:Show() if(nCard1>1&&nCard1<=10) cout<<nCard1<<" " else switch(nCard1) case 1: nCard1=1;cout<<"A"<<" "break;
5、 case 11:cout<<"J"<<" "break; case 12:cout<<"Q"<<" "break; case 13:cout<<"K"<<" " if(nCard2>1&&nCard2<=10) cout<<nCard2<<" " else switch(nCard2) case 1: nCard2=1;cout&l
6、t;<"A"<<" "break; case 11:cout<<"J"<<" "break; case 12:cout<<"Q"<<" "break; case 13:cout<<"K"<<" " cout<<endl;int CCard:AddBet(int a)nBet=a; if(nBet>nScore|nBet<1)
7、 return 0; return 1;void Compare(CCard& user,CCard& computer) if(user.nCard1=user.nCard2)&&(computer.nCard1!=computer.nCard2)user.nScore+=computer.nBet; computer.nScore-=computer.nBet; user.nLoop+; computer.nLoop+; user.nWin+; computer.nLose+; user.Bet=user.nScore; computer.Bet=compu
8、ter.nScore; if(computer.nScore<=0)ShowResult(user,computer);return; cout<<"这局玩家赢了,请继续努力哦"<<endl; else if(user.nCard1!=user.nCard2)&&(computer.nCard1=computer.nCard2) computer.nScore+=user.nBet; user.nScore-=user.nBet; user.nLoop+; computer.nLoop+; computer.nWin+; use
9、r.nLose+; user.Bet=user.nScore; computer.Bet=computer.nScore; if(user.nScore<=0)ShowResult(user,computer);return; cout<<"这局计算机赢了,真遗憾"<<endl; elseif(user.nCard1+user.nCard2)>(computer.nCard1+computer.nCard2) user.nScore+=computer.nBet; computer.nScore-=computer.nBet; user.
10、nLoop+; computer.nLoop+; user.nWin+; computer.nLose+; user.Bet=user.nScore; computer.Bet=computer.nScore; if(computer.nScore<=0)ShowResult(user,computer);return; cout<<"这局玩家赢了,请继续努力哦"<<endl; else if(user.nCard1+user.nCard2)<(computer.nCard1+computer.nCard2) computer.nScor
11、e+=user.nBet; user.nScore-=user.nBet; user.nLoop+; computer.nLoop+; computer.nWin+; user.nLose+; user.Bet=user.nScore; computer.Bet=computer.nScore; if(user.nScore<=0)ShowResult(user,computer);return; cout<<"这局计算机赢了,真遗憾"<<endl; else cout<<"和局"<<endl; us
12、er.nLoop+;computer.nDraw+; void ShowResult(CCard& user,CCard& computer) cout<<"-游戏结束!结果:-"<<endl; if(user.nScore<=0) cout<<"计算机胜出,玩家努力哦!"<<endl; else cout<<"恭喜玩家胜出!"<<endl; cout<<"出牌数:"<<user.nLoop<
13、<endl; cout<<"玩家积分:"<<user.nScore<<endl; cout<<"玩家胜的次数:"<<user.nWin<<endl; cout<<"玩家负的次数:"<<user.nLose<<endl; cout<<"玩家平的次数:"<<user.nDraw<<endl; cout<<"计算机积分:"<<co
14、mputer.nScore<<endl; cout<<"计算机胜的次数:"<<computer.nWin<<endl; cout<<"计算机负的次数:"<<computer.nLose<<endl; cout<<"计算机平的次数:"<<computer.nDraw<<endl; cout<<"-"<<endl; flag=1; user.nLoop=0; user.nDra
15、w=0; cout<<"游戏结束,按任意键退出"<<endl; system("pause");void main() select: flag=0; int start,ucard,ccard,bet,cont,sel=1;/sel=0,玩家下注,sel=1,计下注/card第一张 char ch; CCard user,computer; cout<<"开始游戏请按1"<<" "<<"放弃请选0"<<endl;bingi
16、n :if(flag=1) system("cls"); goto select; cin>>start;switch(start)case 1: cout<<"开始发牌,期待一下吧" user.SetCard();ucard=user.SetCard(); computer.SetCard();ccard=computer.SetCard(); break; case 0:exit(0);cout<<endl;cout<<"你的第一张牌是:"<<endl;/if(ucard
17、<=10 && ucard>1) cout<<ucard;elseswitch(ucard) case 1 :cout<<" A" break; case 11:cout<<" J" break; case 12:cout<<" Q" break; case 13:cout<<" K"cout<<endl;cout<<"是否选择下注:"<<endl;cout<<
18、"选1下注,选0放弃"<<endl;cin>>cont;switch(cont) case 0:sel=0;goto nextplayer;cout<<"你现在还有"<<user.Bet<<"赌注"<<endl;bet:cout<<"请押赌注"<<endl;cin>>bet;if(bet>5) cout<<"押注请不要超过5哦,重试一下吧"<<endl; go
19、to bet;if(!(user.AddBet(bet)&&computer.AddBet(bet) cout<<"押注要大于0哟,再来一次"<<endl; goto bet;nextplayer: if(sel=0) switch(ccard) case 14:bet=5;break; case 13:bet=3;break; case 12:bet=2;break; case 11:bet=1;break; case 10:bet=4;break; case 9:bet=1;break; case 8:bet=3;break; c
20、ase 7:bet=4;break; case 6:bet=5;break; case 5:bet=1;break; case 4:bet=5;break; case 3:bet=2;break; case 2:bet=3;break; while(!(user.AddBet(bet)&&computer.AddBet(bet) bet-; cout<<"计算机下注"<<bet<<",你是否接受Y/N"<<endl; cin>>ch; switch(ch) case 'Y': case 'y': break; case 'N': case 'n': cout<<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025岗位安全培训考试试题真题汇编
- 西安建筑科技大学华清学院《外科护理学实训》2023-2024学年第二学期期末试卷
- 聊城大学《环境污染事件应急监测与处理》2023-2024学年第二学期期末试卷
- 江苏省苏州市张家港第一中学2025年初三数学试题一模试题含解析
- 上海中医药大学《测量平差基础》2023-2024学年第二学期期末试卷
- 酒泉职业技术学院《地理信息系统导论》2023-2024学年第二学期期末试卷
- 武汉航海职业技术学院《国际组织》2023-2024学年第二学期期末试卷
- 梧州学院《园艺产品品质分析》2023-2024学年第二学期期末试卷
- 辽宁省葫芦岛市六校协作体2025年高三年级第一次校模拟考试英语试题含解析
- 上海市嘉定区市级名校2024-2025学年高三5月月考调研物理试题含解析
- 2024年中国光大银行招聘考试真题
- 2025-2030中国油漆和涂料消光剂行业市场发展趋势与前景展望战略研究报告
- 2025年山西焦煤集团国际发展股份有限公司招聘笔试参考题库附带答案详解
- 水泥装卸合同协议
- 金华兰溪市卫健系统普通高校招聘医学类笔试真题2024
- 2025年浙江省杭州市萧山区中考一模数学模拟试卷(含详解)
- 道路普通货运企业安全生产达标考评方法和考评实施细则
- DB15T 3516-2024野生动物救护站建设规范
- 火灾自动报警系统设计规范完整版2025年
- 能源消防安全课件
- 演唱会可行性研究报告
评论
0/150
提交评论