欢迎来到天天文库
浏览记录
ID:42443101
大小:108.82 KB
页数:13页
时间:2019-09-15
《C实验报告石头剪刀布》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、c++实验报告石头、剪刀、布游戏目录C++实验报告2石头、剪刀、布游戏2一、目的与要求2二、工具/准备工作2三、分析2四、实现步骤5五、测试少结论8六、实验总结11C++实验报告石头、剪刀、布游戏一、目的与要求在游戏中,孩子们用手表示石头、剪刀或布小的一个,出拳头表示石头,伸出两根手指表示剪刀,伸手表示布,孩子们面対血地数到三时做出他们的选择,如果所作选择是一样的,则表示平局,否则就按如下规则决定胜负:(1)石头砸坏剪刀(2)剪刀剪碎布(3)布覆盖石头编程实现电脑与人进行游戏。二.工具/准备工作MicrosVisualC++
2、6.0。三、分析1.构造一个运行石头、剪刀、布的类RockPaperScissors:classRockPaperScissors{public:intRoll();voidstart();voidchoice();voidcompare(inta,intb);private:inta、b;};在类外定义函数Roll(),start(),choice(),compare(inta,intb)o1.由于石头、剪刀、布游戏有三种状态,现在分别用1、2、3来表示石头、剪刀、布,使用随机数模3并加1来表示一枚般子所产生的数:a=ra
3、nd()%3+1;a即一次骰了游戏所得到的数字。2.在compare(inta,intb)函数屮进行比较判定胜负:voidRockPaperScissors::compare(inta,intb)Icout«H电脑出的为:”;if(a==l){cout«"石头"«endl;讦(b==1){cout«"您出的石头,平局!*'«endl;}elseif(b==2){cout«H您出的剪刀,您输T!n«endl;}elseif(b==3){cout«H您出的布您赢了!“vvendl;}}elseif(a==2){cout«"剪刀"
4、«endl;讦(b==1){cout«H您出的石头您赢T!n«endl;}elseif(b==2){coutvv”您出的剪刀,平局!n«endl;}elseif(b==3){cout«H您出的布,您输了!H«endl;elseif(a==3){cout«n布"vvendl;if(b==l){cout«H您出的石头,您输了!H«endl;}elseif(b==2){cout«"您出的剪刀您赢了!"«endl;1elseif(b二二3){cout«n您出的布,平局!n«endl;}1.根据玩家的选择运行程序:do{if(p!=l
5、&&p!=2){}elseif(p==l){}[while(p!=2);2.在每一次游戏开始前,为确保随机数的随机性,使用srand函数来生成伪随机数序列的种子:srand((unsigned)time(NULL));3.游戏开始时,提示玩家输入1、2、3来进行选择:voidRockPaperScissors::choice(){coutvv”请输入您的选择:u«endl;cout«"l.石头."vvendl;cout«n2.剪刀.°«endl;cout«"3.布."vvendl;}4.当需进行多轮游戏,用while循环来解
6、决:do{cin»n;if(n!=l&&n!=2&&n!=3&&n!=4)cout«"输入错误,请重新输入:u«endl;elseif(n==4){RPS.start();break;}else{m=RPS.Roll();RPS.compare(m,n);}}while(n!=4);四、实现步!i.建立头文件并定义所用到的字符常量:#include#include#includeusingnamespacestd;2.定义类并在类外定义类中函数:classRockPaper
7、Scissors{public:intRoll();voidstart();voidchoice();voidcompare(inta,intb);private:inta,b;};intRockPaperScissors::Roll()Ia=rand()%3+l;returna;voidRockPaperScissors::start()M«endl;cout«n石头剪刀布cout«H1.开始游戏."«endl;cout«H2.退出游戏.H«endl;cout«M请输入您的选择:u«endl;}voidRockPaperS
8、cissors::choice(){cout«H请输入您的选择:u«endl;cout«Hl.石头.n«endl;cout«H2.剪刀."«endl;cout«M3.布}voidRockPaperScissors::compare(inta,intb){cout«H电脑出的为:”;if(a
此文档下载收益归作者所有