def judge_game(player1_choice, player2_choice):
"""
判断石头剪子布游戏的结果
:param player1_choice: Player1的选择
:param player2_choice: Player2的选择
:return: 游戏结果 ("Player1", "Player2", "Tie")
"""
# 如果选择相同,则平局
if player1_choice == player2_choice:
return "Tie"
# 定义获胜规则
win_rules = {
"Rock": "Scissors", # 石头打败剪刀
"Scissors": "Paper", # 剪刀打败布
"Paper": "Rock" # 布打败石头
}
# 判断Player1是否获胜
if win_rules[player1_choice] == player2_choice:
return "Player1"
else:
return "Player2"
# 读取游戏次数
n = int(input())
# 处理每一轮游戏
for _ in range(n):
# 读取两个玩家的选择
s1, s2 = input().split()
# 判断并输出结果
result = judge_game(s1, s2)
print(result)
程序特点
1. 简洁易懂 :代码结构清晰,注释详细
2. 逻辑清晰 :先判断平局,再根据预定义规则判断胜负
3. 易于扩展 :如果需要添加新的手势,只需在 win_rules 字典中添加规则
核心思路
1. 使用字典 win_rules 存储获胜规则,使代码更加清晰
2. 先判断平局情况(两个玩家选择相同)
3. 再通过查询字典判断Player1是否获胜
4. 如果Player1不获胜且不是平局,则Player2获胜
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复