基于c++的猜拳游戏Word文档下载推荐.docx
- 文档编号:18012216
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:10
- 大小:17.25KB
基于c++的猜拳游戏Word文档下载推荐.docx
《基于c++的猜拳游戏Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于c++的猜拳游戏Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
if(inputPlay==1&
&
inputComputer==2||inputPlay==2&
inputComputer==3||inputPlay==3&
inputComputer==1)
{
cout<
\n玩家胜!
\n"
}
elseif(inputPlay==inputComputer)
\n平局!
else
\n电脑胜!
intmain()
cout<
欢送您玩石头-剪子-布游戏(游戏作者:
张龙)版本1.0\n"
endl;
请公道安插时间,切勿沉迷于游戏!
游戏说明:
数字1代表石头数字2代表剪子数字3代表布\n"
charisGoOn;
intinputPlay;
intinputComputer;
猜拳游戏\n"
游戏说明:
\n\n"
srand(time(NULL));
do
\n请输入您要猜的:
cin>
>
inputPlay;
if(inputPlay>
=0&
inputPlay<
=3)
cout<
您"
show(inputPlay);
inputComputer=rand()%3;
电脑"
show(inputComputer);
compare(inputPlay,inputComputer);
else
您输入有错误!
\n数字1代表石头数字2代表剪子数字3代表布\n"
\n您需要持续么?
(y/n)"
cin>
isGoOn;
}while(isGoOn=='
y'
||isGoOn=='
Y'
欢送下次再玩!
system("
pause"
#include<
ctime>
usingnamespacestd;
intwin_or_loss(int);
//判断输赢的子函数
voidbaoshi(time_t&
//给出当前系统时间的子函数
voidkeep_window_open();
//让程序运行完毕后,窗口不立马消失
intmain()
time_tthe_time_1,the_time_2;
charq;
intwin(0),loss(0),ping(0);
doublegailv(0),sum(0);
张龙)版本1.1\n"
baoshi(the_time_1);
do{
\n请问您一共想要玩几回猜拳游戏,请输入大于0的正整数(建议您至少玩十次):
doubletimes;
//输入的次数必须为大于0的正整数,不成为0,正数,浮点数,字符或是字符串,如果出现不法输入,下面代码是用来处理这些不法输入
while(!
(cin>
times))
您的输入不正当,必须为一个数字,请重新输入:
cin.clear();
cin.sync();
if(times<
=0)
您的输入不正当,必须为正整数!
cin.clear();
q='
continue;
elseif(times!
=int(times))
//游戏正式开始
for(inti=0;
i<
times;
++i)
\n请输入您打算猜的拳(用数字123代替,数字1代表石头数字2代表剪子数字3代表布)"
while
(1)
doublet;
t;
if(cin.bad())
cerr<
Sorry,出现了系统毛病,请重新运行游戏!
return1;
//用来处理不法输入
if(cin.fail())
Sorry!
请您必须输入一个正当的数字(1or2or3)"
请输入您打算猜的拳(用数字123代替)"
}elseif(t!
=1&
t!
=2&
请您必须输入一个正当的数字(1or2or3)\n"
请输入您打算猜的拳(用数字123代替)\n"
}else
第"
i+1<
次猜拳游戏"
if(t==1)
您猜的拳是:
石头"
elseif(t==2)
铰剪"
布"
intn=win_or_loss(t);
if(n==0)
++ping;
elseif(n>
0)
++win;
//统计赢的次数
++loss;
//统计输的次数
break;
if(i==times-1)
您的猜拳次数已经达到您所设定的"
times<
次\n"
请问是否还要持续本游戏(Y/other)"
q;
//在玩够开始自己所设的次数后,如果仍然打算持续,则输入'
}while(q=='
||q=='
//对整个游戏进程做一个完整统计
sum=win+loss+ping;
gailv=win/sum;
\n本次游戏您一共猜拳:
sum<
次"
其中一共胜利:
win<
其中一共输了:
loss<
其中一共打平:
ping<
您的胜率为:
gailv*100<
%"
您的败率为:
loss/sum*100<
您的打平的几率为:
(1-loss/sum-gailv)*100<
if(sum<
10)
由于您猜拳的次数小于10次,不具有统计学意义,所以您与电脑到底谁厉害,无法评判,请大侠重新来过!
elseif(gailv<
0.4)
您真是个菜鸟,持续努力哦!
大侠好厉害啊,竟然赢了电脑,佩服佩服!
baoshi(the_time_2);
本次游戏您一共破费了:
the_time_2-the_time_1<
秒\n"
keep_window_open();
return0;
//游戏焦点代码,判断输赢
intwin_or_loss(intt)
time_tthe_time;
structtm*tm_ptr;
intrec_sec;
//电脑的猜拳最好的办法是设定一组完全的随机数,但是一般很难设计出完全的随机数,因此想了一个很巧妙的办法,取玩游戏时的系统时间的秒,按照当前的秒,电脑给出相应猜出的拳
//这样用一种相对比较随机的办法,即使玩游戏的人知道了随机数的纪律,也很难完全获胜
the_time=time((time_t*)0);
tm_ptr=gmtime(&
the_time);
rec_sec=tm_ptr->
tm_sec;
intans;
//switch中主要分了三种情况,第一种是60以内的素数,然后又添加了几个其他的,凑够20;
第二种是能被3除开的,然后再添加几个凑成20个;
剩下的为第三种
switch(rec_sec)
case2:
case8:
case5:
case7:
case11:
case13:
case17:
case19:
case23:
case29:
case31:
case37:
case41:
case43:
case47:
case53:
case59:
case22:
case38:
case56:
电脑游戏程序的猜的拳是:
ans=1;
case0:
case3:
case6:
case9:
case12:
case15:
case18:
case21:
case24:
case27:
case30:
case33:
case36:
case39:
case42:
case45:
case48:
case51:
case54:
case57:
剪子"
ans=2;
default:
ans=3;
if(t==ans)
您这次和电脑打了一个平手!
switch(t)
case1:
if(ans==2)
祝贺您!
您这次赢了电脑!
return1;
哈哈!
输给电脑了!
再接再厉!
return-1;
if(ans==3)
您这次赢了电脑\n"
case3:
if(ans==1)
inlinevoidkeep_window_open()
cout<
"
Pleaseenteracharactertoexit\n"
charch;
cin>
ch;
return;
inlinevoidbaoshi(time_t&
timeval)
(void)time(&
timeval);
当前北京时间为:
ctime(&
timeval)<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 c+ 猜拳 游戏