石头剪子布(字符串解法 C++)

简介: 石头剪子布(字符串解法 C++)

石头剪子布

题目描述

石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。

游戏规则:石头打剪刀,布包石头,剪刀剪布。

现在,需要你写一个程序来判断石头剪子布游戏的结果。

输入格式

第一行是一个整数 N N N,表示一共进行了 N N N 次游戏。 1 ≤ N ≤ 100 1 \le N \le 100 1N100

接下来 N N N 行的每一行包括两个字符串,表示游戏参与者 Player1,Player2 的选择(石头、剪子或者是布):

S1,S2

字符串之间以空格隔开 S1 S2 只可能取值在 Rock,Scissors,Paper (大小写敏感)中。

输出格式

输出包括 N N N 行,每一行对应一个胜利者(Player1 或者 Player2),或者游戏出现平局,则输出 Tie

样例 #1

样例输入 #1

3
Rock Scissors
Paper Paper
Rock Paper

样例输出 #1

Player1
Tie
Player2

代码如下

#include <bits/stdc++.h>
using namespace std;
void Solved(string s1, string s2) //定义一个函数用来解决问题
{
  string s = "RSP"; //取石头剪刀布的字母手写
  int x1, x2; //定义两个整型
  for(int i = 0; i < 3; i++)  
  {
      if(s1[0] == s[i]) x1 = i; //当s1第一个字符等于字符串的其中一个时,令x1等于该位置的i
      if(s2[0] == s[i]) x2 = i; //与上面的意思相同    
  }
  if(x1 == x2)  cout << "Tie\n";  //如果两者相差的数相同,则为平局
  if(abs(x1 - x2) == 1){  //如果数值相差一位
  if(x1 < x2) cout << "Player1\n";  //当x1 < x2的时候,输出Player1
  else  cout << "Player2\n";  //否则,x1 > x2,输出Player2
  }
  else  //当abs(x1 - x2) ==2时
  {
    if(x1 < x2) //其中此时情况是,s1 = Rock, s2  = Paper
      cout << "Player2\n";
      else cout << "Player1\n";
  }
}
int main()
{
  int T;
  while(T--)
  {
    string s1,s2;
    cin >> s1 >> s2;
    Sloved(s1, s2);
  }
return 0;
}


相关文章
|
5天前
|
存储 编译器 C语言
C++字符串大小写之for语句
C++字符串大小写之for语句
11 0
|
7天前
|
C++
【代码片段】【C++】获取当前时间戳并生成固定格式字符串
【代码片段】【C++】获取当前时间戳并生成固定格式字符串
10 0
|
12天前
|
C++
面向对象的C++题目以及解法2
面向对象的C++题目以及解法2
25 1
|
12天前
|
C++
面向对象的C++题目以及解法
面向对象的C++题目以及解法
19 0
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
14天前
|
人工智能 C++
查找题(二分解法c++)
查找题(二分解法c++)
23 0
|
14天前
|
C++ 容器
约瑟夫经典问题C++,STL容器queue解法
约瑟夫经典问题C++,STL容器queue解法
12 0
|
22天前
|
C++
C++语言学习数组和字符串应用案例
【4月更文挑战第8天】该文展示了C++中数组和字符串的应用案例。数组示例定义了一个整数数组并访问、修改其元素,计算了元素之和。字符串示例中,定义了一个字符串并遍历、修改字符,进行了字符串拼接、查找子字符串及替换操作。
10 3
|
1天前
|
存储 Java C++
【C++类和对象】探索static成员、友元以及内部类
【C++类和对象】探索static成员、友元以及内部类
|
1天前
|
安全 程序员 编译器
【C++类和对象】初始化列表与隐式类型转换
【C++类和对象】初始化列表与隐式类型转换