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
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)
给个例子:
select = ["Rock", "Scissors", "Paper"]
N = int(input())
inputs = []
while len(inputs)<N:
selects = input().strip().split()
if len(selects)==2 and selects[0] in select and selects[1] in select:
inputs.append([select.index(selects[0]),select.index(selects[1])])
else:
print('输入格式错误,请重新输入!')
for i in inputs:
if i[0]-i[1]==0:
print('Tie')
elif i[0]-i[1]==-1 or i[0]-i[1]==2:
print('Player1')
else:
print('Player2')
def game(a,b):
if a == b: return "Tie"
if {a, b} == {'P','S'}:
return "Player1" if a>b else "Player2"
return "Player1" if a<b else "Player2"
N = int(input())
for _ in range(N):
guess = input().split()
print(game(guess[0][0],guess[1][0]))