如何实现多场景字符串比较,完成石头剪刀布蜥蜴史波克游戏逻辑?
实现方案
Python默认的字符串大小比较规则不符合自定义的手势胜负逻辑,因此我们需要先声明自定义胜负映射表,再基于映射表判断结果,完整实现如下:
完整可运行代码
# 定义每个手势可击败的对手列表 win_rule = { "rock": ["scissors", "lizard"], "paper": ["rock", "spock"], "scissors": ["paper", "lizard"], "lizard": ["spock", "paper"], "spock": ["scissors", "rock"] } # 读取输入 a = input("input move: ").strip() b = input("input another move: ").strip() # 判断结果 if a == b: print(0) elif b in win_rule[a]: print(1) else: print(2)
逻辑说明
- 我们用字典
win_rule存储所有胜负规则,字典的key是手势名称,value是当前手势可以击败的所有手势列表 - 当输入的两个手势相等时直接输出平局结果0
- 否则判断手势b是否在手势a的可击败列表中,是则a获胜输出1,否则b获胜输出2
运行测试示例
- 输入a为
rock、b为scissors,输出1 - 输入a为
lizard、b为spock,输出1 - 输入a为
paper、b为scissors,输出2 - 输入a为
spock、b为spock,输出0
内容的提问来源于stack exchange,提问作者roudan
相关产品推荐
相关产品推荐

