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.

93 lines
3.3 KiB

from random import randint
1 year ago
class Personnage:
def __init__(self, nom, cat):
self.nom = nom
self.pdv = 20
self.exp = 1
self.cat = cat
if self.cat == "guerrier":
self.inv = ["épée", "potion"]
elif self.cat == "magicien":
self.inv = ["bâton", "potion"]
elif self.cat == "voleur":
self.inv = ["dague", "potion"]
elif self.cat == "elfe":
self.inv = ["arc", "potion"]
def jet_attaque(self):
attaque = randint(1,20)
if self.cat == "guerrier":
attaque = attaque + self.exp*10
elif self.cat == "mage":
attaque = attaque + self.exp*10
elif self.cat == "voleur":
attaque = attaque + self.exp*3
elif self.cat == "elfe":
attaque = attaque + self.exp*8
return attaque
def jet_defense(self):
defense = randint(1,20)
if self.cat == "guerrier":
defense = defense + self.exp*10
elif self.cat == "mage":
defense = defense + self.exp*10
elif self.cat == "voleur":
defense = defense + self.exp*3
elif self.cat == "elfe":
defense = defense + self.exp*8
return defense
def change_pdv(self, nb_pdv):
pdv += nb_pdv
def change_exp(self, nb_exp):
exp += nb_exp
def affiche_caracteristiques(self): #Permet d'afficher les caracteristiques de votre personnage
print("Le nom de votre personnage est:", self.nom,".")
print("Votre personnage est un(e):", self.cat,".")
print("Votre personnage possède", self.pdv, "points de vie.")
print("Votre personnage possède", self.exp, "d'experience.")
def affiche_inventaire(self): #Permet d'afficher l'inventaire du personnage
print("Inventaire de votre personnage:", self.inv)
nomP1 = input("Joueur 1, quel est votre nom ?: ")
nomP2 = input("Joueur 2, quel est votre nom ?: ")
catP1 = input("Joueur 1, choisissez votre catégorie entre guerrier, mage, voleur et elfe: ")
while not catP1 == "guerrier" and catP1 == "mage" and catP1 == "voleur" and catP1 == "elfe":
catP1 = input("Joueur 1, choisissez votre catégorie entre guerrier, mage, voleur et elfe: ")
catP2 = input("Joueur 2, choisissez votre catégorie entre guerrier, mage, voleur et elfe: ")
while not catP2 == "guerrier" and catP2 == "mage" and catP2 == "voleur" and catP2 == "elfe":
catP1 = input("Joueur 1, choisissez votre catégorie entre guerrier, mage, voleur et elfe: ")
P1 = Personnage(nomP1, catP1)
P2 = Personnage(nomP2, catP2)
while P1.pdv > 0 or P2.pdv > 0:
atkP1 = P1.jet_attaque()
defP2 = P2.jet_defense()
if atkP1 > defP2:
nb_pdv = randint(1,8)
P2.change_pdv(-nb_pdv)
else:
nb_pdv = randint(1,4)
P1.change_pdv(-nb_pdv)
P1_affiche_caracteristiques()
P2.affiche_caracteristiques()
defP1 = P1.jet_defense()
atkP2 = P2.jet_attaque()
if atkP2 > defP1:
nb_pdv = randint(-1,-8)
P1.change_pdv(-nb_pdv)
else:
nb_pdv = randint(-1,-4)
P2.change_pdv(-nb_pdv)
if P1.pdv > 0 and P2.pdv == 0:
P1.change_exp(1)
elif P1.pdv == 0 and P2.pdv > 0:
P2.change_exp(1)