- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C实验报告石头剪刀布
C++实验报告 石头、剪刀、布游戏
目录
C++实验报告 2
石头、剪刀、布游戏 2
一、目的与要求 2
二、工具/准备工作 2
三、分析 2
四、实现步骤 5
五、测试与结论 8
六、实验总结 11
C++实验报告
石头、剪刀、布游戏
一、目的与要求
在游戏中,孩子们用手表示石头、剪刀或布中的一个,出拳头表示石头,伸出两根手指表示剪刀,伸手表示布,孩子们面对面地数到三时做出他们的选择,如果所作选择是一样的,则表示平局,否则就按如下规则决定胜负:
(1)石头砸坏剪刀
(2)剪刀剪碎布
(3)布覆盖石头
编程实现电脑与人进行游戏。
二、工具/准备工作
Micros Visual C++ 6.0。
三、分析
1.构造一个运行石头、剪刀、布的类RockPaperScissors:
class RockPaperScissors
{
public:
int Roll();
void start();
void choice();
void compare(int a,int b);
private:
int a,b;
};在类外定义函数Roll(),start(),choice(),compare(int a,int b)。
2.由于石头、剪刀、布游戏有三种状态,现在分别用1、2、3来表示石头、剪刀、布,使用随机数模3并加1来表示一枚骰子所产生的数:
a=rand()%3+1;
a即一次骰子游戏所得到的数字。
3.在compare(int a,int b) 函数中进行比较判定胜负:
void RockPaperScissors::compare(int a,int b)
{
cout电脑出的为:;
if (a==1)
{
cout石头endl;
if (b==1)
{
cout您出的石头,平局!endl;
}
else if (b==2)
{
cout您出的剪刀,您输了!endl;
}
else if (b==3)
{
cout您出的布,您赢了!endl;
}
}
else if (a==2)
{
cout剪刀endl;
if (b==1)
{
cout您出的石头,您赢了!endl;
}
else if (b==2)
{
cout您出的剪刀,平局!endl;
}
else if (b==3)
{
cout您出的布,您输了!endl;
}
}
else if (a==3)
{
cout布endl;
if (b==1)
{
cout您出的石头,您输了!endl;
}
else if (b==2)
{
cout您出的剪刀,您赢了!endl;
}
else if (b==3)
{
cout您出的布,平局!endl;
}
}
}
4.根据玩家的选择运行程序:
do
{
if (p!=1p!=2){}
else if (p==1){}
}while (p!=2);
5.在每一次游戏开始前,为确保随机数的随机性,使用srand函数来生成伪随机数序列的种子:
srand((unsigned)time(NULL));
6.游戏开始时,提示玩家输入1、2、3来进行选择:
void RockPaperScissors::choice()
{
cout请输入您的选择:endl;
cout1.石头.endl;
cout2.剪刀.endl;
cout3.布.endl;
}
7.当需进行多轮游戏,用while循环来解决:
do
{
cinn;
if (n!=1n!=2n!=3n!=4)
{
cout输入错误,请重新输入:endl;
}
else if(n==4)
{
RPS.start();
break;
}
else
{
m=RPS.Roll();
RPS.compare(m,n);
}
} while(n!=4);
四、实现步骤
1.建立头文件并定义所用到的字符常量:
#include iostream
#include cstdlib
#include ctime
using namespace std;
2.定义类并在类外定义类中函数:
class RockPaperScissors
{
public:
int Roll();
void start();
void choice();
void compare(int a,int b);
private:
int a,b;
};
int RockPaperScissors::Roll(
您可能关注的文档
- 2017新步步高考前3个月化学(通用版)三轮冲刺热点题型特训填空题四微型化学计算专练Word版.docx
- 2017年高考体育单招思想政治课复习训练测试题《经济生活》【教师卷】.doc
- 2017年第一轮物理复习-11功和机械能.doc
- 2017生物一轮对点训练14-1基因突变aWord版含解析.doc
- 2017版高考政治人教版第5单元公民的政治生活第十三课我国公民的政治参与.doc
- 2017生物一轮对点训练26-2微生物的应用bWord版含解析.doc
- 20t行车拆除转运施工方案.docx
- 21-SHNG-31S001上海同大员工手册.doc
- 2017红对勾单元质量评估二.doc
- 231246北交《计算机网络》在线作业一15秋答案.doc
- 5.3.1函数的单调性(教学课件)--高中数学人教A版(2019)选择性必修第二册.pptx
- 部编版道德与法治2024三年级上册 《科技提升国力》PPT课件.pptx
- 2.7.2 抛物线的几何性质(教学课件)-高中数学人教B版(2019)选择性必修第一册.pptx
- 人教部编统编版小学六年级上册道德与法治9 知法守法 依法维权(第一课时)课件.pptx
- 三年级上册品德道德与法治《学习伴我成长》.pptx
- 部编版小学道德与法治六年级上册6 人大代表为人民 课件.pptx
- 部编版小学道德与法治六年级上册1感受生活中的法律第一课时课件.pptx
- 2.5.2圆与圆的位置关系(教学课件)-高中数学人教A版(2019)选择性必修第一册.pptx
- 2.5.1直线与圆的位置关系-(教学课件)--高中数学人教A版(2019)选择性必修第一册.pptx
- 14.1.1 同底数幂的乘法(教学课件)-初中数学人教版八年级上册.pptx
文档评论(0)