题目描述
循环相克令是一个两人玩的小游戏。令词为“猎人、狗熊、枪”,两人同时说出令词,同时做出一个动作——猎人的动作是双手叉腰;狗熊的动作是双手搭在胸前;枪的动作是双手举起呈手枪状。
双方以此动作判定输赢,猎人赢枪、枪赢狗熊、狗熊赢猎人,动作相同则视为平局。
现在给定你一系列的动作组合,请你判断游戏结果。
输入格式
第一行包含整数 T,表示共有 T 组测试数据。
接下来 T 行,每行包含两个字符串,表示一局游戏中两人做出的动作,字符串为 Hunter, Bear, Gun
中的一个,这三个单词分别代表猎人,狗熊和枪。
输出格式
如果第一个玩家赢了,则输出 Player1
。
如果第二个玩家赢了,则输出 Player2
。
如果平局,则输出 Tie
。
数据范围
1≤T≤100
输入样例
3
Hunter Gun
Bear Bear
Hunter Bear
输出样例
Player1
Tie
Player2
代码1
#include<iostream>
#include<string>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
string a,b;
cin>>a>>b;
if(a==b)
cout<<"Tie"<<endl;
else if(a=="Hunter"&&b=="Gun"||a=="Gun"&&b=="Bear"||a=="Bear"&&b=="Hunter")
cout<<"Player1"<<endl;
else cout<<"Player2"<<endl;
}
return 0;
}
代码2
如果把hunter记作0,Bear1,gun2的话,发现1赢0,2赢1,0赢2,赢的一方记作x,输的一方记作y,x==(y+1)%3
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
string x,y;
cin>>x>>y;
int a,b;
if(x=="Hunter") a=0;
else if(x=="Bear") a=1;
else a=2;
if(y=="Hunter") b=0;
else if(y=="Bear") b=1;
else b=2;
if(a==b)
puts("Tie");
else if(a==(b+1)%3)
puts("Player1");
else puts("Player2");
}
return 0;
}