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.

126 lines
4.3 KiB

### classe qui répond au cahier des charges
### programme principal qui ne se lance pas automatiquement ...
### et quand on le lance manuellement, ne fonctionne pas totalement
### à cause du test dans la fonction tour() qui n'est jamais vrai !
### il faut tester ses programmes !
### note : 14/20 (classe : 12/12 prog : 2/8)
from random import randint
class Personnage:
def __init__(self, nom, cat):
self.nom = nom
self.hp = 20
self.xp = 1
self.cat = cat
if self.cat == 'Guerrier':
self.inv = ['Épée', 'Potion']
if self.cat == 'Magicien':
self.inv = ['Bâton', 'Potion']
if self.cat == 'Voleur':
self.inv = ['Dague', 'Potion']
if self.cat == 'Elfe':
self.inv = ['Arc', 'Potion']
def jet_attaque(self):
= randint(1,20)
print("Votre lancer a fait le nombre :", )
if self.cat == 'Guerrier' or self.cat == 'Magicien':
return + self.xp * 10
if self.cat == 'Voleur':
return + self.xp * 3
if self.cat == 'Elfe':
return + self.xp * 8
def jet_defense(self):
pass
= randint(1,20)
print("Votre lancer a fait le nombre :", )
if self.cat == 'Guerrier':
return + self.xp * 8
if self.cat == 'Magicien':
return + self.xp * 7
if self.cat == 'Voleur':
return + self.xp * 9
if self.cat == 'Elfe':
return + self.xp * 10
def change_hp(self, nb_hp):
self.hp = nb_hp + self.hp
def change_xp(self, nb_xp):
self.xp = nb_xp + self.xp
def affiche_caracteristiques(self):
print(f"Votre nom : {self.nom}\n"
f"Votre categorie : {self.cat}\n"
f"Vos points de vie : {self.hp}\n"
f"Votre experience : {self.xp}\n")
def affiche_inventaire(self):
if self.cat == 'Guerrier':
print("Votre personnage a : Épée, Potion")
if self.cat == 'Magicien':
print("Votre personnage a : Bâton, Potion")
if self.cat == 'Voleur':
print("Votre personnage a : Dague, Potion")
if self.cat == 'Elfe':
print("Votre personnage a : Arc, Potion")
def attribution():
attaquant_nom = input ("Comment l'attaquant se nomme ?")
attaquant_cat = input ("A quelle catégorie voulez vous appartenir ? \n"
"Aux guerriers = 1 \n "
"Aux magiciens = 2 \n "
"Aux Voleurs = 3 \n "
"Aux Elfes = 4")
if attaquant_cat == "1":
attaquant_cat = "Guerrier"
if attaquant_cat == "2":
attaquant_cat = "Magicien"
if attaquant_cat == "3":
attaquant_cat = "de Voleur"
if attaquant_cat == "4":
attaquant_cat = "Elfe"
print ("Vous faites maintenant partis des" ,attaquant_cat)
defenseur_nom = input ("Puis comment le joueur 2 se nomme ?")
defenseur_cat = input ("A quelle catégorie voulez vous appartenir ? \n"
"Aux guerriers = 1 \n "
"Aux magiciens = 2 \n "
"Aux Voleurs = 3 \n "
"Aux Elfes = 4")
if defenseur_cat == "1":
defenseur_cat = "Guerrier"
if defenseur_cat == "2":
defenseur_cat = "Magicien"
if defenseur_cat == "3":
defenseur_cat = "Voleur"
if defenseur_cat == "4":
defenseur_cat = "Elfe"
print ("Vous faites maintenant partis des" ,defenseur_cat)
attaquant = Personnage(attaquant_nom, attaquant_cat)
defenseur = Personnage(defenseur_nom, defenseur_cat)
tour(attaquant, defenseur)
def tour(attaquant, defenseur):
while attaquant.hp == 0 or defenseur.hp == 0 :
A_attaque = attaquant.jet_attaque()
D_defense = defenseur.jet_defense()
if A_attaque > D_defense:
attaquant.change_hp - randint(1,8)
if A_attaque < D_defense:
defenseur.change_hp - randint(1,4)
return "vous avez fait le même score"
if attaquant.hp == 0:
print("le defenseur a gagné la partie")
if defenseur.hp == 0:
print("l'attaquant a gagné la partie")