dimanche 13 septembre 2020

how can I subtract the amount Randint generates in the while loop from enemies HP without getting 2 different numbers?

If you run the code you should see that the print says "14" for example, but It retracts something else from enemies HP.

Calculating attack damage for each "spell":

from random import randint
import time


class Player(object):
    def __init__(self, health):
        self.health = health

    @staticmethod
    def use_heal():
        return randint(9, 21)

    @staticmethod
    def attack_slice():
        return randint(5, 29)

    @staticmethod
    def attack_bash():
        return randint(11, 18)

class Enemy(object):
    def __init__(self, health):
        self.health = health

    @staticmethod
    def enemy_attack():
        return randint(9, 19)

For setting HP:

player = Player(100)
enemy = Enemy(100)

The loop that is the "game":

while True:
    print(f"Your hp: {player.health}\nEnemy hp: {enemy.health}\n")
    print("(1) Bash _ (2) Slice _ (3) Heal")
    attack_choice = int(input(">>"))
    
    if attack_choice == 1:
        print(f"You hit for {Player.attack_bash()}")
        enemy.health -= Player.attack_bash()
    
    elif attack_choice == 2:
        print(f"You hit for {Player.attack_slice()}")
        enemy.health -= Player.attack_slice()
    
    elif attack_choice == 3:
        print(f"You heal for {Player.use_heal()}")
        player.health += Player.use_heal()



Aucun commentaire:

Enregistrer un commentaire