|
|
|
### la méthode afficher caractéristique ne fait pas grand chose, il faudrait peut être
|
|
|
|
### afficher les variables plutôt que du texte
|
|
|
|
### De même affiche inventaire est maladroite
|
|
|
|
### jeu() est une méthode de la classe personnage ?
|
|
|
|
### dans un else il n'y a pas de test, veut dire : dans tous les autres cas
|
|
|
|
### gestion du choix de la catégorie maladroit
|
|
|
|
### des modification sont à apporter dans la fonction jeu()
|
|
|
|
### note : 12/20 (classe : 10/12 prog : 2/8)
|
|
|
|
|
|
|
|
from random import randint
|
|
|
|
|
|
|
|
class Personnage :
|
|
|
|
def __init__(self, nom, cat) :
|
|
|
|
self.nom = nom
|
|
|
|
self.pdv = 20
|
|
|
|
self.exp = 1
|
|
|
|
self.cat = cat
|
|
|
|
if self.cat == "guerrier":
|
|
|
|
self.inventaire = ["épée","potion"]
|
|
|
|
if self.cat == "magicien":
|
|
|
|
self.inventaire = ["bâton","potion"]
|
|
|
|
if self.cat == "voleur":
|
|
|
|
self.inventaire = ["dague","potion"]
|
|
|
|
if self.cat == "elfe":
|
|
|
|
self.inventaire = ["arc","potion"]
|
|
|
|
|
|
|
|
|
|
|
|
def jet_attaque(self):
|
|
|
|
"""revoie le jet d'attaque"""
|
|
|
|
lance = randint(1, 20)
|
|
|
|
if self.cat == "guerrier":
|
|
|
|
return lance + self.exp * 10
|
|
|
|
if self.cat == "magicien":
|
|
|
|
return lance + self.exp * 10
|
|
|
|
if self.cat == "voleur":
|
|
|
|
return lance + self.exp * 3
|
|
|
|
if self.cat == "elfe":
|
|
|
|
return lance + self.exp * 8
|
|
|
|
|
|
|
|
|
|
|
|
def jet_defence(self):
|
|
|
|
"""revoie le jet de défence"""
|
|
|
|
lance = randint(1, 20)
|
|
|
|
if self.cat == "guerrier":
|
|
|
|
return lance + self.exp * 8
|
|
|
|
if self.cat == "magicien":
|
|
|
|
return lance + self.exp * 7
|
|
|
|
if self.cat == "voleur":
|
|
|
|
return lance + self.exp * 9
|
|
|
|
if self.cat == "elfe":
|
|
|
|
return lance + self.exp * 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def change_pdv(self, nb_pdv):
|
|
|
|
"""on ajoute un entier positif ou négatif aux points de vie du perso"""
|
|
|
|
self.pdv = self.pdv + nb_pdv
|
|
|
|
|
|
|
|
|
|
|
|
def change_exp(self, nb_exp):
|
|
|
|
"""on ajoute un entier positif à l'experience du perso"""
|
|
|
|
self.exp = self.exp + nb_exp
|
|
|
|
|
|
|
|
|
|
|
|
def affiche_carracteristiques(self):
|
|
|
|
print("nom perso , catégorie perso, points de vie perso, expérience perso")
|
|
|
|
|
|
|
|
|
|
|
|
def affiche_inventaire(self):
|
|
|
|
if self.cat == "guerrier":
|
|
|
|
print("le personnage a : épée, potion ")
|
|
|
|
if self.cat == "magicien":
|
|
|
|
print("le personnage a : bâton, potion ")
|
|
|
|
if self.cat == "voleur":
|
|
|
|
print("le personnage a : dague, potion ")
|
|
|
|
if self.cat == "elfe":
|
|
|
|
print("le personnage a : arc, potion")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def jeu ():
|
|
|
|
joueur_1_nom = input("quel est le nom du joueur 1 ?")
|
|
|
|
joueur_1_cat = input("de quel categorie est le joueur 1 ? ; 1= guerrier 2= magicien 3= voleur 4= elfe")
|
|
|
|
if joueur_1_cat == "1":
|
|
|
|
joueur_1_cat = "guerrier"
|
|
|
|
if joueur_1_cat == "2":
|
|
|
|
joueur_1_cat = "magicien"
|
|
|
|
if joueur_1_cat == "3":
|
|
|
|
joueur_1_cat = "voleur"
|
|
|
|
if joueur_1_cat == "4":
|
|
|
|
joueur_1_cat = "elfe"
|
|
|
|
joueur_2_nom = input("quel est le nom du joueur 2 ?")
|
|
|
|
joueur_2_cat = input("de quel categorie est le joueur 2 ? ; 1= guerrier 2= magicien 3= voleur 4= elfe")
|
|
|
|
if joueur_2_cat == "1":
|
|
|
|
joueur_2_cat = "guerrier"
|
|
|
|
if joueur_2_cat == "2":
|
|
|
|
joueur_2_cat = "magicien"
|
|
|
|
if joueur_2_cat == "3":
|
|
|
|
joueur_2_cat = "voleur"
|
|
|
|
if joueur_2_cat == "4":
|
|
|
|
joueur_2_cat = "elfe"
|
|
|
|
|
|
|
|
joueur_1 = Personnage (joueur_1_nom,joueur_1_cat)
|
|
|
|
joueur_2 = Personnage (joueur_2_nom,joueur_2_cat)
|
|
|
|
|
|
|
|
while joueur_1.pdv > 0 and joueur_2.pdv > 0 :
|
|
|
|
j1A = joueur_1.jet_attaque()
|
|
|
|
j2B = joueur_2.jet_defence()
|
|
|
|
|
|
|
|
if j1A > j2B :
|
|
|
|
print()
|
|
|
|
joueur_1.affiche_caracteristique()
|
|
|
|
joueur_2.affiche_caracteristique()
|
|
|
|
else j1A < j2B :
|
|
|
|
print()
|
|
|
|
joueur_1.affiche_caracteristique()
|
|
|
|
joueur_2.affiche_caracteristique()
|
|
|
|
j2A = joueur_2.jet_attaque()
|
|
|
|
j1B = joueur_1.jet defence()
|
|
|
|
|
|
|
|
if j2A > j1B :
|
|
|
|
print()
|
|
|
|
joueur_1.affiche_caracteristique()
|
|
|
|
joueur_2.affiche_caracteristique()
|
|
|
|
else j2A < j1B :
|
|
|
|
print()
|
|
|
|
joueur_1.affiche_caracteristique()
|
|
|
|
joueur_2.affiche_caracteristique()
|
|
|
|
|
|
|
|
|
|
|
|
#perso1 = Personnage("toto", "guerrier")
|
|
|
|
#return affiche_inventaire
|
|
|
|
|
|
|
|
#perso2 = Personnage("bob", "elfe")
|