石头剪刀布c++实现

问题描述:
编写一个程序,玩“石头”“剪刀”“布”的游戏,在这个游戏中,两位玩家通时说出“石头”“剪刀”“布”
如果一位玩家所选的对象击败了另一个玩家所选的对象,那么前者就是赢家,规则是:布吃石头,石头吃剪刀
剪刀吃布,为选择的对象和最终的结果使用枚举,使用标准头文件中定义的ran()函数,为计算生成随机的选择。
输入:
choose either rock,shear,cloth(R/S/P):S
输出:
I chose Rock.
I won
设计思路:
产生result的两个人,设计程序为你选你的(switch随机选),我产生我的(rand()函数随机产生对3求余,switch实现产生我的三种结果),
然后将你选的和我随机产生做比较,对产生的结果做判断,当然了本题也可以是两个人的结果都随机产生,然后作比较 。

#include
#include
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;
    } 

}

你可能感兴趣的:(算法入门)