B2112 题解(新思路)
glass_goldfish · · 题解
这题不难。
我发现大佬们都是暴力过的呢qwq~但是由于我很懒,所给大家提供一种新思路。
我们可以把字符串转化成数字来计算。可以设置函数pass如下:
int pass(string s){
if(s=="Rock")return 1;
else if(s=="Paper")return 2;
else if(s=="Scissors")return 3;
}//函数知识,如果不知道请自行百度
然后,由于石头剪刀布游戏的规则,我们再设置一个数组a[4][4],来代表在pass函数下哪个玩家会赢(
int a[4][4];//定义
a[1][1]=a[2][2]=a[3][3]=0;//平局
a[1][3]=a[2][1]=a[3][2]=1;//Player1赢
a[1][2]=a[2][3]=a[3][1]=2;//Player2赢
最后进行模拟:
cin>>s1>>s2;
int k=a[pass(s1)][pass(s2)];//得出哪个玩家赢
if(k==1)//判断并输出
cout<<"Player1\n";
else if(k==2)
cout<<"Player2\n";
else cout<<"Tie\n";