Python 坚持开发作战功能

Python 坚持开发作战功能,python,Python,基本上,我正在学习编码,并看到了这个不错的龙王国示例任务。一切都很好,直到我达到了我想参加战斗的阶段 def cave_2_fight(): def monster_hit(): m_hit = random.randint(1, 11) return m_hit def player_hit(): p_hit = random.randint(1, 11)

基本上,我正在学习编码,并看到了这个不错的龙王国示例任务。一切都很好,直到我达到了我想参加战斗的阶段

    def cave_2_fight():
        def monster_hit():
            m_hit = random.randint(1, 11)
            return m_hit

        def player_hit():
            p_hit = random.randint(1, 11)
            return p_hit

        monster_hp = random.randint(1, 101)
        player_hp = 100
        print("You are being attacked by a goblin with {} hp".format(monster_hp))
        print("Getting ready text")
        while monster_hp != 0 or player_hp != 0:
            attack_area = input("Where do you want to hit him[top or mid or bot]: ")
            if attack_area == 'top':
                p_dmg = player_hit()
                m_dmg = monster_hit()
                print('You hit goblin for {} and he hits you for {}'.format(p_dmg, m_dmg))
                player_hp = player_hp - m_dmg
                monster_hp = monster_hp - p_dmg
                return player_hp, monster_hp

            elif attack_area == "mid":
                p_dmg = player_hit()
                m_dmg = monster_hit()
                print('You hit goblin for {} and he hits you for {}'.format(p_dmg, m_dmg))
                player_hp = player_hp - m_dmg
                monster_hp = monster_hp - p_dmg
我希望它是随机的一点,我真的陷入回到选择攻击区后,我第一次失败。提前谢谢

                return player_hp, monster_hp
退出该函数。你应该去掉这条线-怪物和玩家的生命将在没有它的情况下得到更新

另外,你可能应该改变

    while monster_hp != 0 or player_hp != 0:

因为有可能有人的hp为负值。如果你想在任何一个玩家死亡时结束游戏,请将“或”改为“和”(这将要求他们都活着)


你可能会被否决,因为a)你的代码有什么问题(我猜是这样),b)你发布的代码不是a:第一行会出现语法错误(我认为这只是粘贴副本时的缩进问题。)

我被减得太少了,为什么?首先,感谢你的回复,以后我会尽量更准确地回答我的问题。修复了我的复制粘贴错误,您的解决方案工作得很好。非常感谢!
    while monster_hp > 0 or player_hp > 0: