Compare commits

...

No commits in common. 'master' and 'DerniereBranche' have entirely different histories.

  1. 201
      jdr_el-hajam.py
  2. 198
      jdr_el-hajam_fini.py

201
jdr_el-hajam.py

@ -1,7 +1,21 @@
from random import randint """
_ _ //\ _ _ _ ______ _ _ _ _
| | | | |/ \| | | | | /\ | | | ____| | | | | | | (_)
| | ___ _ _ __| | ___ _ __ ___ | | ___ __| | ___ / \ _ _ ___ _ _ | |__ | |__ | | | |__| | __ _ _ __ _ _ __ ___
_ | | / _ \ | | | | / _` | / _ \ | '__| / _ \ | | / _ \ / _` | / _ \ / /\ \ | | | | / _ \ | | | | | '_ \ | __| | | | __ | / _` | | | / _` | | '_ ` _ \
| |__| | | __/ | |_| | | (_| | | __/ | | | (_) | | | | __/ | (_| | | __/ / ____ \ | |_| | | (_) | | |_| | | |_) | | |____ | | | | | | | (_| | | | | (_| | | | | | | |
\____/ \___| \__,_| \__,_| \___| |_| \___/ |_| \___| \__,_| \___| /_/ \_\ \__, | \___/ \__,_| |_.__/ |______| |_| |_| |_| \__,_| | | \__,_| |_| |_| |_|
__/ | _/ |
|___/ |__/
"""
#----------------------------------------------------------------------------------------#
from random import randint
#----------------------------------------------------------------------------------------#
class Personnage: class Personnage:
def __init__(self,nom,pdv,exp,cat,inventaire): def __init__(self,nom,cat):
self.nom = nom self.nom = nom
self.pdv = 20 self.pdv = 20
self.exp = 1 self.exp = 1
@ -16,75 +30,160 @@ class Personnage:
self.inventaire = ["dague" , "potion"] une dague et une potion""" self.inventaire = ["dague" , "potion"] une dague et une potion"""
elif self.cat == "elfe" : """Si la catégorie du joueur est elfe, son inventaire contient elif self.cat == "elfe" : """Si la catégorie du joueur est elfe, son inventaire contient
self.inventaire = ["arc" , "potion"] un arc et une potion""" self.inventaire = ["arc" , "potion"] un arc et une potion"""
#----------------------------------------------------------------------------------------#
def jet_attaque(self): def jet_attaque(self):
"""Méthode qui permet de calculer la valeur d'attaque du joueur en fonction de sa catégorie"""
de = randint(1, 20) de = randint(1, 20)
if self.cat == "guerrier": if self.cat == "1":
coeff = self.exp * 10 coeff = 10
if self.cat == "magicien": elif self.cat == "2":
coeff = self.exp * 10 coeff = 10
if self.cat == "voleur": elif self.cat == "3":
coeff = self.exp * 13 coeff = 3
if self.cat == "elfe": elif self.cat == "4":
coeff = self.exp * 8 coeff = 8
val_att = de + coeff return de + self.exp * coeff
return val_att
#----------------------------------------------------------------------------------------#
def jet_defense(self): def jet_defense(self):
de = randint(1, 20) """Méthode qui permet de calculer la valeur de defense du joueur en fonction de sa catégorie"""
if self.cat == "guerrier": de = randint(1, 20)
coeff_2 = self.exp * 8 if self.cat == "1":
if self.cat == "magicien": coeff = 8
coeff_2 = self.exp * 7 elif self.cat == "2":
if self.cat == "voleur": coeff = 7
coeff_2 = self.exp * 9 elif self.cat == "3":
if self.cat == "elfe": coeff = 9
coeff_2 = self.exp * 10 elif self.cat == "4":
val_def = de + coeff_2 coeff = 10
return val_def return de + self.exp * coeff
#----------------------------------------------------------------------------------------#
def affiche_inventaire(self,inventaire): def affiche_inventaire(self,inventaire):
"""Comme son nom l'indique, la méthode affiche l'inventaire du joueur"""
print("Voici le contenu de votre inventaire : " ,self.inventaire) print("Voici le contenu de votre inventaire : " ,self.inventaire)
def affiche_caracteristiques(self,nom,cat,pdv,exp): #----------------------------------------------------------------------------------------#
print("Voici vos caractéristiques : ",self.nom,self.cat,self.pdv,self.exp)
def affiche_caracteristiques(self):
"""Comme son nom l'indique (encore), la méthode affiche les caractéristiques du joueur"""
print("Voici vos caractéristiques : Votre nom : ",self.nom, ", Votre catégorie :" , self.cat, ", Vos points de vie :" ,self.pdv,", Vos points d'experience :" ,self.exp)
#----------------------------------------------------------------------------------------#
def change_pdv(self,nb_pdv): def change_pdv(self,nb_pdv):
"""Cette méthode sert à calculer les pv du joueur après une attaque"""
self.pdv = nb_pdv + self.pdv self.pdv = nb_pdv + self.pdv
return self.pdv return self.pdv
#----------------------------------------------------------------------------------------#
def change_exp(self,nb_exp): def change_exp(self,nb_exp):
"""Cette méthode sert à calculer les points d'experience du joueur après une attaque"""
self.exp = nb_exp + self.exp self.exp = nb_exp + self.exp
return self.exp return self.exp
#----------------------------------------------------------------------------------------#
"""La fonction principale du jeu de rôle, c'est ici que le combat a lieu"""
def Combat(): def Combat():
pile_face = randint(1, 2) print(jeu_commence)
while joueur1.hp > 0 and joueur2.hp: """Je ne savais pas quoi faire pour savoir quel joueur commence à jouer en premier alors j'ai mis en place un système de pile ou face,
if pile_face = 1 : l'idée est qu'on lance au hasard la fonction randint, et si elle tombe sur 1 alors c'est le joueur 1 qui joue en premier, et si elle tombe sur 2 alors c'est le joueur 2 qui joue en premier."""
if player1.jet_attaque() > player2.jet_defense(): while joueur1.pdv > 0 and joueur2.pdv > 0:
player2.change_hp(- random.randint(1, 8)) pile_face = randint(1, 2)
if pile_face == 1 :
if joueur1.jet_attaque() > joueur2.jet_defense():
joueur2.change_pdv(- randint(1, 8))
print("Le joueur 1 a réussi son attaque !") print("Le joueur 1 a réussi son attaque !")
else :
joueur1.change_pdv(-randint(1, 4))
print("Le joueur 1 a perdu son attaque !")
else: else:
if joueur2.jet_attaque() > joueur1.jet_defense():
joueur1.change_pdv(- randint(1, 8))
print("Le joueur 2 a gagné son attaque !")
nom = Personnage(input("Bonjour, quel est votre nom ? ")) else :
joueur1.cat = input("Choisissez la catégorie du joueur 1, tapez 1 pour être un guerrier, 2 pour être un magicien, 3 pour être un voleur, 4 pour être un elfe: ") joueur2.change_pdv(- randint(1, 4))
if joueur1.cat == "1": print("Le joueur 2 a perdu son attaque !")
print("Voici les caractéristiques des 2 joueurs :")
joueur1.affiche_caracteristiques()
joueur2.affiche_caracteristiques()
if joueur1.pdv <= 0:
gagne = joueur2.nom
joueur2.change_exp(+1)
else :
gagne = joueur1.nom
joueur1.change_exp(+1)
print(combat_fini)
print("Le gagnant est...",gagne,"bravo à lui !")
#----------------------------------------------------------------------------------------#
"""Ici, on prend les informations des joueurs c'est-à-dire leur nom et leur catégorie."""
nom_du_joueur1 = input("Bienvenue, entrez le nom du joueur 1. ")
catégorie_du_joueur1 = input("Choisissez la catégorie du joueur 1, tapez 1 pour être un guerrier, 2 pour être un magicien, 3 pour être un voleur, 4 pour être un elfe: ")
if catégorie_du_joueur1 == "1":
catégorie_du_joueur1 = "guerrier"
print("Le joueur 1 est un guerrier") print("Le joueur 1 est un guerrier")
if joueur1.cat =="2": if catégorie_du_joueur1 =="2":
catégorie_du_joueur1 = "magicien"
print("Le joueur 1 est un magicien") print("Le joueur 1 est un magicien")
if joueur1.cat =="3": if catégorie_du_joueur1 =="3":
print("Le joueur 1 est un voleur") print("Le joueur 1 est un voleur")
if joueur1.cat1== "4": if catégorie_du_joueur1== "4":
print("Le joueur 1 est un elfe") print("Le joueur 1 est un elfe")
while not catégorie_du_joueur1 in ["1", "2", "3", "4"]:
catégorie_du_joueur1 = input("Choisissez la catégorie du joueur 1, tapez 1 pour être un guerrier, 2 pour être un magicien, 3 pour être un voleur, 4 pour être un elfe: ")
joueur2.cat = input("Choisissez la catégorie du joueur 2 tapez 1 pour être un guerrier, 2 pour être un magicien, 3 pour être un voleur, 4 pour être un elfe: ") nom_du_joueur2 = input("Bienvenue, entrez le nom du joueur 2. ")
if joueur2.cat == "1": catégorie_du_joueur2 = input("Choisissez la catégorie du joueur 2, tapez 1 pour être un guerrier, 2 pour être un magicien, 3 pour être un voleur, 4 pour être un elfe: ")
if catégorie_du_joueur2 == "1":
print("Le joueur 2 est un guerrier") print("Le joueur 2 est un guerrier")
if joueur2.cat =="2": if catégorie_du_joueur2 =="2":
print("Le joueur 2 est un magicien") print("Le joueur 2 est un magicien")
if joueur2.cat =="3": if catégorie_du_joueur2 =="3":
print("Le joueur 2 est un voleur") print("Le joueur 2 est un voleur")
if joueur2.cat == "4": if catégorie_du_joueur2 == "4":
print("Le joueur 2 est un elfe") print("Le joueur 2 est un elfe")
while not catégorie_du_joueur2 in ["1", "2", "3", "4"]:
catégorie_du_joueur2 = input("Choisissez la catégorie du joueur 2, tapez 1 pour être un guerrier, 2 pour être un magicien, 3 pour être un voleur, 4 pour être un elfe: ")
#----------------------------------------------------------------------------------------#
jeu_commence = """
___ _ _ _
/ _ \ _ _ ___ | | ___ (_) ___ _ _ __ ___ _ __ _ __ ___ _ _ __ ___ | |
| (_) | | || | / -_) | | / -_) | | / -_) | || | / _| / _ \ | ' \ | ' \ / -_) | ' \ / _| / -_) |_|
\__\_\ \_,_| \___| |_| \___| _/ | \___| \_,_| \__| \___/ |_|_|_| |_|_|_| \___| |_||_| \__| \___| (_)
|__/
"""
#----------------------------------------------------------------------------------------#
combat_fini = """
___ _ _ _ _ _
| __| (_) _ _ __| | _ _ __ ___ _ __ | |__ __ _ | |_ | |
| _| | | | ' \ / _` | | || | / _| / _ \ | ' \ | '_ \ / _` | | _| |_|
|_| |_| |_||_| \__,_| \_,_| \__| \___/ |_|_|_| |_.__/ \__,_| \__| (_)
"""
#----------------------------------------------------------------------------------------#
"""On instancie les 2 joueurs pour que le jeu ait lieu"""
joueur1 = Personnage(nom_du_joueur1, catégorie_du_joueur1)
joueur2 = Personnage(nom_du_joueur2, catégorie_du_joueur2)
Combat()

198
jdr_el-hajam_fini.py

@ -1,198 +0,0 @@
### attention les """ ne sont pas des commentaires #
### la gestion des catégories n'est pas très claire! Il faut choisir entre "1" et "guerrier" ...
### votre inventaire serra toujours vide !
### l'interface est agréable, on aurait pu afficher le nombre de points de vie perdus à chaque tour
### Sur chaque tour le même joueur peut attaquer plusieur fois de suite (pile_face)
### il y a du code qui peut être factoriser (éviter le copié collé)
### note : 16,5/20 (classe : 10/12 prog : 6,5/8)
"""
_ _ //\ _ _ _ ______ _ _ _ _
| | | | |/ \| | | | | /\ | | | ____| | | | | | | (_)
| | ___ _ _ __| | ___ _ __ ___ | | ___ __| | ___ / \ _ _ ___ _ _ | |__ | |__ | | | |__| | __ _ _ __ _ _ __ ___
_ | | / _ \ | | | | / _` | / _ \ | '__| / _ \ | | / _ \ / _` | / _ \ / /\ \ | | | | / _ \ | | | | | '_ \ | __| | | | __ | / _` | | | / _` | | '_ ` _ \
| |__| | | __/ | |_| | | (_| | | __/ | | | (_) | | | | __/ | (_| | | __/ / ____ \ | |_| | | (_) | | |_| | | |_) | | |____ | | | | | | | (_| | | | | (_| | | | | | | |
\____/ \___| \__,_| \__,_| \___| |_| \___/ |_| \___| \__,_| \___| /_/ \_\ \__, | \___/ \__,_| |_.__/ |______| |_| |_| |_| \__,_| | | \__,_| |_| |_| |_|
__/ | _/ |
|___/ |__/
"""
#----------------------------------------------------------------------------------------#
from random import randint
#----------------------------------------------------------------------------------------#
class Personnage:
def __init__(self,nom,cat):
self.nom = nom
self.pdv = 20
self.exp = 1
self.cat = cat
self.inventaire = []
if self.cat == "guerrier" : """Si la catégorie du joueur est guerrier, son inventaire contient
self.inventaire = ["epee" , "potion"] une epee et une potion"""
elif self.cat == "magicien" : """Si la catégorie du joueur est magicien, son inventaire contient
self.inventaire = ["baton" , "potion"] un baton et une potion"""
elif self.cat == "voleur" : """Si la catégorie du joueur est voleur, son inventaire contient
self.inventaire = ["dague" , "potion"] une dague et une potion"""
elif self.cat == "elfe" : """Si la catégorie du joueur est elfe, son inventaire contient
self.inventaire = ["arc" , "potion"] un arc et une potion"""
#----------------------------------------------------------------------------------------#
def jet_attaque(self):
"""Méthode qui permet de calculer la valeur d'attaque du joueur en fonction de sa catégorie"""
de = randint(1, 20)
if self.cat == "1":
coeff = 10
elif self.cat == "2":
coeff = 10
elif self.cat == "3":
coeff = 3
elif self.cat == "4":
coeff = 8
return de + self.exp * coeff
#----------------------------------------------------------------------------------------#
def jet_defense(self):
"""Méthode qui permet de calculer la valeur de defense du joueur en fonction de sa catégorie"""
de = randint(1, 20)
if self.cat == "1":
coeff = 8
elif self.cat == "2":
coeff = 7
elif self.cat == "3":
coeff = 9
elif self.cat == "4":
coeff = 10
return de + self.exp * coeff
#----------------------------------------------------------------------------------------#
def affiche_inventaire(self,inventaire):
"""Comme son nom l'indique, la méthode affiche l'inventaire du joueur"""
print("Voici le contenu de votre inventaire : " ,self.inventaire)
#----------------------------------------------------------------------------------------#
def affiche_caracteristiques(self):
"""Comme son nom l'indique (encore), la méthode affiche les caractéristiques du joueur"""
print("Voici vos caractéristiques : Votre nom : ",self.nom, ", Votre catégorie :" , self.cat, ", Vos points de vie :" ,self.pdv,", Vos points d'experience :" ,self.exp)
#----------------------------------------------------------------------------------------#
def change_pdv(self,nb_pdv):
"""Cette méthode sert à calculer les pv du joueur après une attaque"""
self.pdv = nb_pdv + self.pdv
return self.pdv
#----------------------------------------------------------------------------------------#
def change_exp(self,nb_exp):
"""Cette méthode sert à calculer les points d'experience du joueur après une attaque"""
self.exp = nb_exp + self.exp
return self.exp
#----------------------------------------------------------------------------------------#
"""La fonction principale du jeu de rôle, c'est ici que le combat a lieu"""
def Combat():
print(jeu_commence)
"""Je ne savais pas quoi faire pour savoir quel joueur commence à jouer en premier alors j'ai mis en place un système de pile ou face,
l'idée est qu'on lance au hasard la fonction randint, et si elle tombe sur 1 alors c'est le joueur 1 qui joue en premier, et si elle tombe sur 2 alors c'est le joueur 2 qui joue en premier."""
while joueur1.pdv > 0 and joueur2.pdv > 0:
pile_face = randint(1, 2)
if pile_face == 1 :
if joueur1.jet_attaque() > joueur2.jet_defense():
joueur2.change_pdv(- randint(1, 8))
print("Le joueur 1 a réussi son attaque !")
else :
joueur1.change_pdv(-randint(1, 4))
print("Le joueur 1 a perdu son attaque !")
else:
if joueur2.jet_attaque() > joueur1.jet_defense():
joueur1.change_pdv(- randint(1, 8))
print("Le joueur 2 a gagné son attaque !")
else :
joueur2.change_pdv(- randint(1, 4))
print("Le joueur 2 a perdu son attaque !")
print("Voici les caractéristiques des 2 joueurs :")
joueur1.affiche_caracteristiques()
joueur2.affiche_caracteristiques()
if joueur1.pdv <= 0:
gagne = joueur2.nom
joueur2.change_exp(+1)
else :
gagne = joueur1.nom
joueur1.change_exp(+1)
print(combat_fini)
print("Le gagnant est...",gagne,"bravo à lui !")
#----------------------------------------------------------------------------------------#
"""Ici, on prend les informations des joueurs c'est-à-dire leur nom et leur catégorie."""
nom_du_joueur1 = input("Bienvenue, entrez le nom du joueur 1. ")
catégorie_du_joueur1 = input("Choisissez la catégorie du joueur 1, tapez 1 pour être un guerrier, 2 pour être un magicien, 3 pour être un voleur, 4 pour être un elfe: ")
if catégorie_du_joueur1 == "1":
catégorie_du_joueur1 = "guerrier"
print("Le joueur 1 est un guerrier")
if catégorie_du_joueur1 =="2":
catégorie_du_joueur1 = "magicien"
print("Le joueur 1 est un magicien")
if catégorie_du_joueur1 =="3":
print("Le joueur 1 est un voleur")
if catégorie_du_joueur1== "4":
print("Le joueur 1 est un elfe")
while not catégorie_du_joueur1 in ["1", "2", "3", "4"]:
catégorie_du_joueur1 = input("Choisissez la catégorie du joueur 1, tapez 1 pour être un guerrier, 2 pour être un magicien, 3 pour être un voleur, 4 pour être un elfe: ")
nom_du_joueur2 = input("Bienvenue, entrez le nom du joueur 2. ")
catégorie_du_joueur2 = input("Choisissez la catégorie du joueur 2, tapez 1 pour être un guerrier, 2 pour être un magicien, 3 pour être un voleur, 4 pour être un elfe: ")
if catégorie_du_joueur2 == "1":
print("Le joueur 2 est un guerrier")
if catégorie_du_joueur2 =="2":
print("Le joueur 2 est un magicien")
if catégorie_du_joueur2 =="3":
print("Le joueur 2 est un voleur")
if catégorie_du_joueur2 == "4":
print("Le joueur 2 est un elfe")
while not catégorie_du_joueur2 in ["1", "2", "3", "4"]:
catégorie_du_joueur2 = input("Choisissez la catégorie du joueur 2, tapez 1 pour être un guerrier, 2 pour être un magicien, 3 pour être un voleur, 4 pour être un elfe: ")
#----------------------------------------------------------------------------------------#
jeu_commence = """
___ _ _ _
/ _ \ _ _ ___ | | ___ (_) ___ _ _ __ ___ _ __ _ __ ___ _ _ __ ___ | |
| (_) | | || | / -_) | | / -_) | | / -_) | || | / _| / _ \ | ' \ | ' \ / -_) | ' \ / _| / -_) |_|
\__\_\ \_,_| \___| |_| \___| _/ | \___| \_,_| \__| \___/ |_|_|_| |_|_|_| \___| |_||_| \__| \___| (_)
|__/
"""
#----------------------------------------------------------------------------------------#
combat_fini = """
___ _ _ _ _ _
| __| (_) _ _ __| | _ _ __ ___ _ __ | |__ __ _ | |_ | |
| _| | | | ' \ / _` | | || | / _| / _ \ | ' \ | '_ \ / _` | | _| |_|
|_| |_| |_||_| \__,_| \_,_| \__| \___/ |_|_|_| |_.__/ \__,_| \__| (_)
"""
#----------------------------------------------------------------------------------------#
"""On instancie les 2 joueurs pour que le jeu ait lieu"""
joueur1 = Personnage(nom_du_joueur1, catégorie_du_joueur1)
joueur2 = Personnage(nom_du_joueur2, catégorie_du_joueur2)
Combat()
Loading…
Cancel
Save