您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > c++程序设计-对抗游戏
C++课程设计报告对抗游戏一、实验目的:1.加深对c++程序设计的理解,了解程序设计的流程。2.增强对程序模块化思想的概念3.加深对类、构造函数,析构函数,友元函数的理解。二、实验内容:1.阅读程序设计要求和源代码,理解和分类各部分的功能。2.设计一个类内定义的函数,实现增加赌注的功能。3.设计友元函数实现比大小的功能和输出结果功能。4.写出main函数,整合各部分功能,完成程序。三、实验环境:VC++6.0四、算法或核心技术介绍:1.利用类,实现各部分的定义。2.在友元函数中利用if函数实现比较大小的功能。五、附件程序代码如下:#includeiostream#includemath.h#includestdlib.h#includectimeusingnamespacestd;intflag;classCCard{intnCard1,nCard2;//两张牌staticintnLoop;//出牌次数,游戏结束时给出总的出牌次数intnScore;//总分intnWin,nLose;staticnDraw;//赢,输,平的次数intnBet;//赌注public:intBet;CCard();//构造函数intSetCard();//出两张牌voidShow();//显示牌点intAddBet(int);//增加赌注,失败返回0voidfriendCompare(CCard&,CCard&);//友元函数,比较牌点大小,并显示结果voidfriendShowResult(CCard&,CCard&);//友元函数,输出输赢结果及最后积分};intCCard::nDraw=0;intCCard::nLoop=0;CCard::CCard(){nScore=20;Bet=nScore;nWin=0;nLose=0;nBet=0;}intCCard::SetCard(){for(inti=0;i=100000000;i++);srand((unsigned)time(0));nCard1=(rand()%13+1);nCard2=(rand()%13+1);returnnCard1;}voidCCard::Show(){if(nCard11&&nCard1=10)coutnCard1;elseswitch(nCard1){case1:{nCard1=1;coutA;break;}case11:{coutJ;break;}case12:{coutQ;break;}case13:{coutK;}}if(nCard21&&nCard2=10)coutnCard2;elseswitch(nCard2){case1:{nCard2=1;coutA;break;}case11:{coutJ;break;}case12:{coutQ;break;}case13:{coutK;}}coutendl;}intCCard::AddBet(inta){nBet=a;if(nBetnScore||nBet1){return0;}return1;}voidCompare(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=computer.nScore;if(computer.nScore=0){ShowResult(user,computer);return;}cout这局玩家赢了,请继续努力哦endl;}elseif((user.nCard1!=user.nCard2)&&(computer.nCard1==computer.nCard2)){computer.nScore+=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{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=computer.nScore;if(computer.nScore=0){ShowResult(user,computer);return;}cout这局玩家赢了,请继续努力哦endl;}elseif((user.nCard1+user.nCard2)(computer.nCard1+computer.nCard2)){computer.nScore+=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;user.nLoop++;computer.nDraw++;}}}voidShowResult(CCard&user,CCard&computer){cout---------------游戏结束!结果:----------endl;if(user.nScore=0)cout计算机胜出,玩家努力哦!endl;elsecout恭喜玩家胜出!endl;cout出牌数:user.nLoopendl;cout玩家积分:user.nScoreendl;cout玩家胜的次数:user.nWinendl;cout玩家负的次数:user.nLoseendl;cout玩家平的次数:user.nDrawendl;cout计算机积分:computer.nScoreendl;cout计算机胜的次数:computer.nWinendl;cout计算机负的次数:computer.nLoseendl;cout计算机平的次数:computer.nDrawendl;cout-----------------------------------------endl;flag=1;user.nLoop=0;user.nDraw=0;cout游戏结束,按任意键退出endl;system(pause);}voidmain(){select:flag=0;intstart,ucard,ccard,bet,cont,sel=1;//sel=0,玩家下注,sel=1,计下注//card第一张charch;CCarduser,computer;cout开始游戏请按1放弃请选0endl;bingin:if(flag==1){system(cls);gotoselect;}cinstart;switch(start){case1:{cout开始发牌,期待一下吧……;user.SetCard();ucard=user.SetCard();computer.SetCard();ccard=computer.SetCard();break;}case0:{exit(0);}}coutendl;cout你的第一张牌是:endl;////////////if(ucard=10&&ucard1)coutucard;else{switch(ucard){case1:coutA;break;case11:coutJ;break;case12:coutQ;break;case13:coutK;}}coutendl;cout是否选择下注:endl;cout选1下注,选0放弃endl;cincont;switch(cont){case0:{sel=0;gotonextplayer;}}cout你现在还有user.Bet赌注endl;bet:cout请押赌注endl;cinbet;if(bet5){cout押注请不要超过5哦,重试一下吧endl;gotobet;}if(!(user.AddBet(bet)&&computer.AddBet(bet))){cout押注要大于0哟,再来一次endl;gotobet;}nextplayer:if(sel==0){switch(ccard){case14:{bet=5;break;}case13:{bet=3;break;}case12:{bet=2;break;}case11:{bet=1;break;}case10:{bet=4;break;}case9:{bet=1;break;}case8:{bet=3;break;}case7:{bet=4;break;}case6:{bet=5;break;}case5:{bet=1;break;}case4:{bet=5;break;}case3:{bet=2;break;}case2:{bet=3;break;}}while(!(user.AddBet(bet)&&computer.AddBet(bet))){bet--;}cout计算机下注bet,你是否接受Y/Nendl;cinch;switch(ch){case'Y':{}case'y':{break;}case'N':{}case'n':{cout继续游戏请选1,退出游戏请按0endl;sel=1;gotobingin;break;}}sel=1;}cout押注成功endl;cout继续请选1endl;cout放弃请选0endl;scanf(%d,&cont);switch(cont){case1:{cout玩家的牌是:endl;user.Show();cout计算机的牌是:endl;computer.Show();break;}case0:{cout重新开始请选1endl;cout不想玩了请选0endl;gotobingin;break;}}Compare(user,computer);cout重新开始选择1endl;cout不想玩了请选0endl;gotobingin;}
本文标题:c++程序设计-对抗游戏
链接地址:https://www.777doc.com/doc-4220617 .html