c程序设计对抗游戏_第1页
c程序设计对抗游戏_第2页
c程序设计对抗游戏_第3页
c程序设计对抗游戏_第4页
c程序设计对抗游戏_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论