如何解决结果不一致,Python 中的简单剪刀石头布游戏
我对 Python 非常陌生,目前只是尝试研究一些核心概念,例如数据结构,以便更好地了解如何调用某些键和值。
我在下面的代码中遇到了非常不一致的结果,当我(玩家)玩“剪刀”而 NPC 玩“石头”时,我(玩家)仍然以某种方式赢了,石头、纸、剪刀的其他组合给出正确的结果(据我所知)例如。纸对石头,剪刀对纸,我不知道为什么。
我附上了我的代码的图像,因为复制和粘贴它似乎会产生难看的段落。 code in pycharm
对于实际代码:
import random
d = {'rock': {'rock': 'tie','scissors': 'win','paper': 'lose'},'paper': {'paper': 'tie','rock': 'win','scissors': 'lose'},'scissors': {'scissors': 'tie','paper': 'win','rock': 'lose'}}
d_l = list(d)
def umbrella():
player_1_name = input('insert name')
player_2_name = 'npc'
player_1_and_npc_actions_and_check_winner(player_1_name,player_2_name)
def player_1_and_npc_actions_and_check_winner(x,y):
winner = 0
while winner == 0:
p1 = input('please choose a rock = 1,paper = 2,scissors = 3 ')
p1_n = int(p1)
p_c = d_l[p1_n - 1]
print(p_c)
npc_choice = random.choice(d_l)
print(npc_choice)
if p_c == npc_choice:
print('TIE')
winner += 0
return
elif p_c in d.get(npc_choice,'lose'):
print(f'{x} wins!')
elif npc_choice in d.get(p_c,'lose'):
print(f'{y} wins!')
return
umbrella()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。