JackYang_LJY 2022-07-08 10:54 采纳率: 100%
浏览 129
已结题

1102:练7.4 石头剪子布

问题遇到的现象和发生背景

1102:练7.4 石头剪子布

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

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

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

【输入】
第一行是一个整数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

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

3条回答 默认 最新

  • 鸡蛋酱$ 2022-07-08 11:59
    关注
    
    class Solution:
        def __init__(self) -> None:
            self.choice = {"Rock", "Scissors", "Paper"}
    
        def Game(self, N: int) -> None:
            """
            :param N:
            :return:
            """
    
            def decision(way1: str, way2: str) -> str:
                """
                :param way1:
                :param way2:
                :return:
                """
                if way1 == "Rock":
                    if way2 == "Rock":
                        return "Tie"
                    elif way2 == "Scissors":
                        return "Player1"
                    else:
                        return "Player2"
                elif way1 == "Scissors":
                    if way2 == "Scissors":
                        return "Tie"
                    elif way2 == "Rock":
                        return "Player2"
                    else:
                        return "Player1"
                else:
                    if way2 == "Paper":
                        return "Tie"
                    elif way2 == "Scissors":
                        return "Player2"
                    else:
                        return "Player1"
    
            arr = []
            for i in range(N):
                choices = input()
                choices1, choices2 = choices.split(' ')
                if choices1 not in self.choice:
                    print("Input Error, Enter Again")
                    i -= 1
                    continue
                if choices2 not in self.choice:
                    print("Input Error, Enter Again")
                    i -= 1
                    continue
                arr.append(decision(way1=choices1, way2=choices2))
            for i in arr:
                print(i)
    
    
    if __name__ == '__main__':
        U = Solution()
        num = int(input())
        U.Game(num)
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月16日
  • 已采纳回答 7月8日
  • 创建了问题 7月8日

悬赏问题

  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面