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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论