当前位置:首页 > 题解目录 > 正文内容

剪刀石头布

亿万年的星光5年前 (2021-01-28)题解目录14345

【题目描述】
石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。游戏规则:石头打剪刀,布包石头,剪刀剪布。现在,需要你写一个程序来判断石头剪子布游戏的结果。
【输入描述】
第一行是一个整数N,表示一共进行了N次游戏。1 ≤ N ≤ 100。
接下来N行的每一行包括两个字符串,表示游戏参与者Player1,Player2的选择(石头、剪子或者是布): S1 S2
字符串之间以空格隔开S1,S2只可能取值在{“Rock”, “Scissors”, “Paper”}(大小写敏感)中。
【输出描述】

输出包括N行,每一行对应一个胜利者(Player1或者Player2),或者游戏出现平局,则输出Tie。
【输入样例】
3
Rock Scissors
Paper Paper
Rock Paper
【输出样例】

Player1
Tie
Player2

#include<iostream>
using namespace std;
int main()
{
    char a[101],b[101];
    int n;
    int i;
 
    cin>>n;
 
    for(i=0; i<n; i++)
    {
        cin>>a>>b;
      if(a[0]=='R'&&b[0]=='S'||a[0]=='S'&&b[0]=='P'||a[0]=='P'&&b[0]=='R')//判断第一个字母即可
            cout<<"Player1"<<endl;
        else if(a[0]==b[0])
            cout<<"Tie"<<endl;
        else
            cout<<"Player2"<<endl;
    }
 
    return 0;
}
// 思路2,判断字符数组和字符串相同
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char a[101],b[101];
    int n;
    int i;
    cin>>n;
    for(i=0; i<n; i++)
    {
        cin>>a>>b;
       	if((strcmp(a,"Rock")==0 && strcmp(b,"Scissors")==0) ||(strcmp(a,"Scissors")==0 && strcmp(b,"Paper")==0) || (strcmp(a,"Paper")==0 && strcmp(b,"Rock")==0) ) // 用strcmp判断相同,注意此处不能用 a=="Rock" 判断是否相等 
		    cout<<"Player1"<<endl;
		else if((strcmp(a,"Rock")==0 && strcmp(b,"Rock")==0) ||(strcmp(a,"Scissors")==0 && strcmp(b,"Scissors")==0) || (strcmp(a,"Paper")==0 && strcmp(b,"Paper")==0) )
			cout<<"Tie"<<endl;
		else
			cout<<"Player2"<<endl;
   }
    return 0;
}
// 思路3  根据每个字符数组的长度来判断用户输入的是什么
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char a[101],b[101];
    
    int n;
    int i;
    cin>>n;
    for(i=0; i<n; i++)
    {
        cin>>a>>b;
	    int l1 = strlen(a);
	    int l2 = strlen(b);
	    /*
			Rock     长度4
			Scissors 长度 8
			Paper    长度5 
		*/ 
		if((l1==4 && l2==8) ||(l1== 8 && l2==5) ||(l1==5 && l2==4))
			cout<<"Player1"<<endl;
		else if(l1==l2)
			cout<<"Tie"<<endl;
		else
			cout<<"Player2"<<endl; 
	       	
   }
    return 0;
}


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:
返回列表

上一篇:整理药名

下一篇:大象喝水

相关文章

【题解】踩方格

【题目描述】有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;b、走过的格子立即塌陷无法再走第二次;c、只能向北、东、西三个方向走;请问...

【题解】密码截获

【题目描述】Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码 进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。...

猴子吃桃

【题目描述】猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第N天早上想再吃时...

【题解】舞蹈机器人

题目描述在一个拥有无限大小的二维平面的原点处,有一个舞蹈机器人,这个机器人将在这个平面上跳舞。这个机器人每次可以向自己的前方移动一个单位的长度,由于它需要在移动的过程中跳舞,因此,舞蹈机器人每移动一次...

【题解】高精度除法

【题目描述】高精除以高精,求它们的商和余数。【输入描述】输入两个低于300位的正整数。【输出描述】输出商和余数。【样例输入】12313123184575776878979876423245678643...

【题解】同学的等待

【题目描述】同学们下课后去食堂,每个人都需要一段时间去点菜。然而,某些同学点菜时间太长了。同学们对于等待很烦躁:他们希望,能尽量少的花时间等待。(同学数<=100000),(0<=点菜耗时...