Sommaire : 2026 01 13

CombatsTom

CombatsTom

import random

class Personnage:
    def __init__(self, nom, vie, attaque):
        self.nom = nom
        self.vie = vie
        self.attaque = attaque
    
    def attaquer(self, monstre):
        monstre.vie -= self.attaque
        return ("Vie restante du monstre:", monstre.vie)
    
    def est_vivant(self):
        if self.vie <= 0:
            return False
        return True
    
    def afficher(self):
        return ("Nom:", self.nom, "/ Vie:", self.vie, "/ Attaque:", self.attaque)
    
    
class Monstre:
    def __init__(self, type, vie, attaque):
        self.type = type
        self.vie = vie
        self.attaque = attaque
    
    def attaquer(self, personnage):
        personnage.vie -= self.attaque
        return ("Vie restante de", personnage.nom, ":", personnage.vie)
    
    def est_vivant(self):
        if self.vie <= 0:
            return False
        return True
    
    def afficher(self):
        return ("Type:", self.type, "/ Vie:", self.vie, "/ Attaque:", self.attaque)
    
Player1 = Personnage("Thorfinn", 100, 8)
Monstre1 = Monstre("Gobelin", 35, 12)
Monstre2 = Monstre("Ogre", 200, 22)

def combat(personnage, monstre):
    i = 0
    while personnage.est_vivant() and monstre.est_vivant():
        i += 1
        if i < 100:
            premier = random.randint(0, 1)
            if premier == 1:
                personnage.attaquer(monstre)
                etourdi = random.randint(0, 1)
                if etourdi == 1:
                    print("Le", monstre.type, "est étourdi et n'attaque pas à ce tour.")
                else:
                    monstre.attaquer(personnage)
            else:
                monstre.attaquer(personnage)
                etourdi = random.randint(0, 1)
                if etourdi == 1:
                    print("Le", monstre.type, "a étourdi", personnage.nom, "et il ne peut plus attaquer.")
                else:
                    personnage.attaquer(monstre)
        else:
            break
    if personnage.est_vivant():
        return personnage.nom, "a gagné et", monstre.type, "est mort.", "Vie restante du survivant:", personnage.vie
    else:
        return personnage.nom, "a perdu...", monstre.type, "l'a tué.", "Vie restante du survivant:", monstre.vie


print(combat(Player1, Monstre1))

print("                                                                                                       ")
print("_______________________________________________________________________________________________________")
print("                                                                                                       ")

print(combat(Player1, Monstre2))

Le Gobelin est étourdi et n'attaque pas à ce tour.
('Thorfinn', 'a gagné et', 'Gobelin', 'est mort.', 'Vie restante du survivant:', 52)
                                                                                                       
_______________________________________________________________________________________________________
                                                                                                       
Le Ogre a étourdi Thorfinn et il ne peut plus attaquer.
Le Ogre est étourdi et n'attaque pas à ce tour.
('Thorfinn', 'a perdu...', 'Ogre', "l'a tué.", 'Vie restante du survivant:', 176)

Retour au sommaire

↑ Haut de la page