微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

结果不一致,Python 中的简单剪刀石头布游戏

如何解决结果不一致,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 举报,一经查实,本站将立刻删除。