GHESQUIERE Mathieu
1 year ago
1 changed files with 80 additions and 1 deletions
@ -1,2 +1,81 @@ |
|||||
|
import random |
||||
|
|
||||
class Personnage: |
class Personnage: |
||||
def __init__ (self, nom, pdv, exp, cat, inventaire) |
def __init__(self, nom, cat): |
||||
|
self.nom = nom |
||||
|
self.pdv = 20 |
||||
|
self.exp = 1 |
||||
|
self.cat = cat |
||||
|
self.inventaire = [] |
||||
|
|
||||
|
def jet_attaque(self): |
||||
|
coefficient = 10 # Coeff de base |
||||
|
if self.cat == "guerrier": |
||||
|
coefficient = 10 |
||||
|
elif self.cat == "magicien": |
||||
|
coefficient = 10 |
||||
|
elif self.cat == "voleur": |
||||
|
coefficient = 3 |
||||
|
elif self.cat == "elfe": |
||||
|
coefficient = 8 |
||||
|
|
||||
|
return random.randint(1, 20) + self.exp * coefficient |
||||
|
|
||||
|
def jet_defense(self): |
||||
|
coefficient = 8 # Coeff de base |
||||
|
if self.cat == "guerrier": |
||||
|
coefficient = 8 |
||||
|
elif self.cat == "magicien": |
||||
|
coefficient = 7 |
||||
|
elif self.cat == "voleur": |
||||
|
coefficient = 9 |
||||
|
elif self.cat == "elfe": |
||||
|
coefficient = 10 |
||||
|
|
||||
|
return random.randint(1, 20) + self.exp * coefficient |
||||
|
|
||||
|
def change_pdv(self, ab_pdv): |
||||
|
self.pdv += ab_pdv |
||||
|
|
||||
|
def change_exp(self, ab_exp): |
||||
|
self.exp += ab_exp |
||||
|
|
||||
|
def affiche_caracteristiques(self): |
||||
|
print(f"Nom: {self.nom}") |
||||
|
print(f"Catégorie: {self.cat}") |
||||
|
print(f"Points de vie: {self.pdv}") |
||||
|
print(f"Expérience: {self.exp}") |
||||
|
|
||||
|
def affiche_inventaire(self): |
||||
|
print(f"Inventaire de {self.nom}: {', '.join(self.inventaire)}") |
||||
|
|
||||
|
# Creation des personnage |
||||
|
personnage1 = Personnage("kratos", "guerrier") |
||||
|
personnage2 = Personnage("dumbeldore", "magicien") |
||||
|
|
||||
|
# Simu de combat |
||||
|
while personnage1.pdv > 0 and personnage2.pdv > 0: |
||||
|
attaquant = personnage1 if random.choice([True, False]) else personnage2 |
||||
|
defenseur = personnage2 if attaquant == personnage1 else personnage1 |
||||
|
|
||||
|
attaque = attaquant.jet_attaque() |
||||
|
defense = defenseur.jet_defense() |
||||
|
|
||||
|
if attaque > defense: |
||||
|
dommages = random.randint(1, 8) |
||||
|
defenseur.change_pdv(-dommages) |
||||
|
print(f"{attaquant.nom} attaque {defenseur.nom} et inflige {dommages} points de dégâts.") |
||||
|
else: |
||||
|
dommages = random.randint(1, 4) |
||||
|
attaquant.change_pdv(-dommages) |
||||
|
print(f"{attaquant.nom} attaque {defenseur.nom}, mais {defenseur.nom} se défend et prend seulement {dommages} points de dégâts.") |
||||
|
|
||||
|
# Affiche caracteristique |
||||
|
personnage1.affiche_caracteristiques() |
||||
|
personnage2.affiche_caracteristiques() |
||||
|
|
||||
|
# Ajoute de l'exp au survivant a la fin du combat |
||||
|
gagnant = personnage1 if personnage1.pdv > 0 else personnage2 |
||||
|
gagnant.change_exp(1) |
||||
|
|
||||
|
print(f"{gagnant.nom} a gagné le combat et reçoit 1 point d'expérience.") |
||||
|
Loading…
Reference in new issue