大家好,又见面了,我是你们的朋友全栈君。
问题描述: 编写一个程序,玩“石头”“剪刀”“布”的游戏,在这个游戏中,两位玩家通时说出“石头”“剪刀”“布” 如果一位玩家所选的对象击败了另一个玩家所选的对象,那么前者就是赢家,规则是:布吃石头,石头吃剪刀 剪刀吃布,为选择的对象和最终的结果使用枚举,使用标准头文件中定义的ran()函数,为计算生成随机的选择。 输入: choose either rock,shear,cloth(R/S/P):S 输出: I chose Rock. I won 设计思路: 产生result的两个人,设计程序为你选你的(switch随机选),我产生我的(rand()函数随机产生对3求余,switch实现产生我的三种结果), 然后将你选的和我随机产生做比较,对产生的结果做判断,当然了本题也可以是两个人的结果都随机产生,然后作比较 。
代码语言:javascript复制#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;
}
}
欢迎大家点赞和关注!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163862.html原文链接:https://javaforall.cn