You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.5 KiB
145 lines
4.5 KiB
import random
|
|
class Personnage :
|
|
def __init__ (self, nom, cat):
|
|
self.nom = nom
|
|
self.pdv = 20
|
|
self.exp = 1
|
|
self.cat = cat
|
|
self.inventaire = self.init_inventaire()
|
|
|
|
def init_inventaire(self) :
|
|
if self.cat == "guerrier":
|
|
return ["épée", "potion"]
|
|
elif self.cat == "magicien":
|
|
return ["bâton", "potion"]
|
|
elif self.cat == "voleur":
|
|
return ["dague", "potion"]
|
|
elif self.cat == "elfe":
|
|
return ["arc", "potion"]
|
|
else:
|
|
return []
|
|
|
|
def jet_attaque (self) :
|
|
lancer = random.randint(1,20)
|
|
if self.cat == "guerrier" :
|
|
coef = self.exp * 10
|
|
if self.cat == "magicien" :
|
|
coef = self.exp * 10
|
|
if self.cat == "voleur" :
|
|
coef = self.exp * 3
|
|
if self.cat == "elfe" :
|
|
coef = self.exp * 8
|
|
somme = coef + lancer
|
|
return somme
|
|
|
|
def jet_defense (self) :
|
|
lancer = random.randint(1,20)
|
|
if self.cat == "guerrier" :
|
|
coef = self.exp * 8
|
|
if self.cat == "magicien" :
|
|
coef = self.exp * 7
|
|
if self.cat == "voleur" :
|
|
coef = self.exp * 9
|
|
if self.cat == "elfe" :
|
|
coef = self.exp * 10
|
|
somme = coef + lancer
|
|
return somme
|
|
|
|
def change_pdv (self, nb_pdv) :
|
|
self.pdv = self.pdv + nb_pdv
|
|
|
|
def change_exp (self, nb_exp) :
|
|
self.exp = self.exp + nb_exp
|
|
|
|
def affiche_caracteristiques (self) :
|
|
print("Les points de vies de", self.nom, "sont à", self.pdv, ". Ses points d'expériences sont à", self.exp, ". Sa catégorie est", self.cat, ".")
|
|
|
|
def affiche_inventaire(self) :
|
|
print("Inventaire de", self.nom, ":", ", ".join(self.inventaire))
|
|
def affiche_pdv(self):
|
|
print("<3 <3 <3 <3 Les points de vies de", self.nom, "sont à", self.pdv)
|
|
|
|
def creer_personnage () :
|
|
nom = input("Entrez le nom du personnage :")
|
|
print("Choississez la classe parmi:")
|
|
print("1 - Guerrier")
|
|
print("2 - Magicien")
|
|
print("3 - Voleur")
|
|
print("4 - Elfe")
|
|
choix = input("Selectionnez le numero de votre classe :")
|
|
while choix not in ["1", "2", "3", "4"] :
|
|
print("Choix invalide, entrez un numero entre 1 et 4")
|
|
choix = input("Selectionnez le numero de votre classe :")
|
|
if choix == "1":
|
|
cat = "guerrier"
|
|
elif choix == "2" :
|
|
cat = "magicien"
|
|
elif choix == "3" :
|
|
cat = "voleur"
|
|
elif choix == "4" :
|
|
cat = "elfe"
|
|
return Personnage(nom, cat)
|
|
|
|
|
|
def combat (p1, p2) :
|
|
print("< < < < < Début du combat > > > > >")
|
|
p1.affiche_caracteristiques()
|
|
p2.affiche_caracteristiques()
|
|
|
|
attaquant = p1
|
|
defenseur = p2
|
|
while p1.pdv > 0 and p2.pdv > 0 :
|
|
print()
|
|
print("!!!", attaquant.nom, "attaque", defenseur.nom, "!!!")
|
|
att = attaquant.jet_attaque()
|
|
defe = defenseur.jet_defense()
|
|
print(">>>>> Jet d'attaque de", attaquant.nom, ":", att)
|
|
print()
|
|
print("<<<<< Jet de défense de", defenseur.nom, ":", defe)
|
|
|
|
if att > defe :
|
|
degats = random.randint(1, 8)
|
|
print(defenseur.nom, "est touché et perd", degats, "points de vies !")
|
|
defenseur.change_pdv(-degats)
|
|
p2.affiche_pdv()
|
|
elif att < defe:
|
|
degats = random.randint(1,4)
|
|
print(attaquant.nom, "rate son coup, et perd", degats, "points de vies !")
|
|
attaquant.change_pdv(-degats)
|
|
p1.affiche_pdv()
|
|
else :
|
|
print(attaquant.nom, "trébuche sur un caillou, et", defenseur.nom, "se raille de lui..")
|
|
p1.affiche_pdv()
|
|
p2.affiche_pdv()
|
|
if p1.pdv == 0 or p2.pdv == 0 :
|
|
print()
|
|
p1.affiche_caracteristiques()
|
|
p2.affiche_caracteristiques()
|
|
attaquant, defenseur = defenseur, attaquant
|
|
|
|
print()
|
|
print(" < < < < < Fin du combat > > > > >")
|
|
if p1.pdv <= 0:
|
|
print(p1.nom, "est mort des coups de", p2.nom, "!")
|
|
print(p2.nom, "gagne 1 point d'expérience.")
|
|
p2.change_exp(1)
|
|
else:
|
|
print(p2.nom, "est mort des coups de", p1.nom, "!")
|
|
print(p1.nom, "gagne 1 point d'expérience.")
|
|
p1.change_exp(1)
|
|
|
|
print()
|
|
p1.affiche_caracteristiques()
|
|
p2.affiche_caracteristiques()
|
|
|
|
|
|
p1 = creer_personnage()
|
|
print("Joueur 1 :")
|
|
p1.affiche_caracteristiques()
|
|
p1.affiche_inventaire()
|
|
p2 = creer_personnage()
|
|
print("Joueur 2 :")
|
|
p2.affiche_caracteristiques()
|
|
p2.affiche_inventaire()
|
|
|
|
|
|
|