大家好,又见面了,我是你们的朋友全栈君。
问题描述:
编写一个程序,玩“石头”“剪刀”“布”的游戏,在这个游戏中,两位玩家通时说出“石头”“剪刀”“布”
如果一位玩家所选的对象击败了另一个玩家所选的对象,那么前者就是赢家,规则是:布吃石头,石头吃剪刀
剪刀吃布,为选择的对象和最终的结果使用枚举,使用标准头文件中定义的ran()函数,为计算生成随机的选择。
输入:
choose either rock,shear,cloth(R/S/P):S
输出:
I chose Rock.
I won
设计思路:
产生result的两个人,设计程序为你选你的(switch随机选),我产生我的(rand()函数随机产生对3求余,switch实现产生我的三种结果),
然后将你选的和我随机产生做比较,对产生的结果做判断,当然了本题也可以是两个人的结果都随机产生,然后作比较 。
#include<iostream>
#include<cstdlib>
using namespace std;
enum Choice {rock,shear,cloth};//分别代表石头,剪刀,布
enum Result {you,me,tie};//其中结果为你赢,我赢,平局
int main()
{
Choice yours,mine;
Result winner=you;
cout<<"Dfsfsd";
cout<<"choose either rock,shear,cloth(R/S/P):";
string s;
cin>>s;
switch(s[0]){
case 'R': case 'r': yours=rock; break;
case 'S': case 's': yours=shear; break;
case 'C': case 'c': yours=cloth; break;
default: yours=rock;
}
int n=rand();//得到一个随机数
switch(n%3){
case 0:mine=cloth; cout<<"I chose cloth.\n"; break;
case 1:mine=shear; cout<<"I chose shear.\n"; break;
case 2:mine=rock; cout<<"I chose stone.\n";
}
if(yours==mine) winner=tie;//对两人产生的结果进行比较
if(mine==rock&&yours==shear||mine==shear&&yours==cloth||mine==cloth&&yours==rock){
winner=me;
}
switch(winner){//产生winner
case you: cout<<"you win!\n"; break;
case me: cout<<"I win!\n"; break;
case tie: cout<<"It's tie!\n"; break;
}
}
欢迎大家点赞和关注!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163862.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...