- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++对抗游戏 实验报告
院系:材料科学与工程
设计题目:对抗游戏
学号:
姓名:
指导老师:
一、程序功能简介
一个对抗游戏,根据随机产生的数字决定双方的输赢。
二、课程设计要求:
(1)当双方进行对抗时,游戏时可根据自身的牌点决定是否继续下注,例如拿到A,把握增大,则在计算机的牌点出来之前加大赌注,但不超过5点。
(2)将双方牌点的比较扩大为两张牌点之和,若出现一组对子,则对子牌点大于任何单牌,若双方均为对子,则比较牌点之和。
三、对题目的分析:
游戏设计:
课程设计要求中要求我们设计一个简单的纸牌对抗游戏,和一个进一步完善的程序,我将要求设计为三个小游戏:分别是1,单牌比较游戏,规则是简单的比大小。2,双牌比较游戏,若出现一组对子,则对子牌点大于任何单牌,若双方均为对子,则比较牌点之和,若均不为对子,则比较各自较小牌的大小。3,同花顺,规则是得到3张牌后,大小的顺序是,三张同牌 顺子 对子 散牌。其他更细的规则和同花顺差不多,另外还在同花顺中加入了花色,与前2个只比大小不同。另外,这三个游戏都只有2个参与对象玩家和电脑。
运行流程:(见右图)
所用技术:
采用了C++语言,利用其面向对象的特点,采用了封装、继承等技术,实现游戏。
四、功能模块方法设计
三个游戏的基本功能模块是:
1.发牌方法。
采用随机数函数,给牌、花色赋值
2. 玩家增加赌注方法
3. 电脑增加赌注方法
简单的人工智能,根据赢的可能性进行押注
4. 比较玩家和电脑大小及算分方法
根据游戏规则对玩家和电脑的牌进行判断比较。
此外还有几个其他的辅助方法,比如返回牌点,一些检查判断方法和构造函数等等。
五、类的设置
1.单牌游戏:
class War
{
protected:
int plyr, comp;//plyr玩者的牌点, comp计算机的牌点
int Score;//玩者的分数,当分数为0或50时游戏结束
int Loop;//出牌次数,游戏结束时给出总的出牌次数
int nWin,nLose; //输赢次数
int nBet; //赌注
public:
War();//缺省构造函数,初始化对象
void SetCard();//给出一次玩者和计算机的牌点
int Player();//返回玩者的牌点
int Computer();//返回计算机的牌点
int getScore();//返回玩者分数
int getLoop();//返回出牌次数
int checkScore();//检查分数是否为0或50,是则返回1
int checkLoop();// 检查局数奇偶情况,奇数返回1
void plyrAddBet(int i); //玩家增加赌注
int compAddBet(); //电脑增加赌注
void Compare(); //比较
};
二.双牌游戏
class War2 : public War
{
protected:
int plyr2, comp2;//plyr玩者的第二张牌点, comp计算机的第二张牌点
int max(int x,int y);
int min(int x,int y);
public:
War2();//缺省构造函数,初始化对象
void SetCard2();//给出第二张一次玩者和计算机的牌点
int Player2();//返回玩者的第二张牌点
int Computer2();//返回计算机的第二张牌点
int compAddBet2(); //出第二张牌时电脑增加赌注
void Compare2(); //比较
};
三.同花顺
class War3 : public War2
{
private:
int plyr3, comp3;//plyr玩者的第三张牌点, comp计算机的第三张牌点,11代表J,12代表Q,13代表K,13代表A
int plyrclr,plyrclr2,plyrclr3,compclr,compclr2,compclr3;//玩家和计算机三张牌的花色
//1红心 2黑桃 3草花 4方块
int minplyr();
int midplyr();
int maxplyr();
int mincomp();
int midcomp();
int maxcomp();//返回玩家和计算机牌的小、中、大三个值
public:
int compAddBet();
War3(
文档评论(0)