From 6872e2acc8ff8bdc8684ce3f9d7e4d863e493337 Mon Sep 17 00:00:00 2001 From: Ayoub El Hajam Date: Fri, 20 Sep 2024 20:07:53 +0200 Subject: [PATCH] jdr_el-hajam_fini.py --- jdr_el-hajam_fini.py | 189 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 jdr_el-hajam_fini.py diff --git a/jdr_el-hajam_fini.py b/jdr_el-hajam_fini.py new file mode 100644 index 0000000..9afb472 --- /dev/null +++ b/jdr_el-hajam_fini.py @@ -0,0 +1,189 @@ +""" + _ _ //\ _ _ _ ______ _ _ _ _ + | | | | |/ \| | | | | /\ | | | ____| | | | | | | (_) + | | ___ _ _ __| | ___ _ __ ___ | | ___ __| | ___ / \ _ _ ___ _ _ | |__ | |__ | | | |__| | __ _ _ __ _ _ __ ___ + _ | | / _ \ | | | | / _` | / _ \ | '__| / _ \ | | / _ \ / _` | / _ \ / /\ \ | | | | / _ \ | | | | | '_ \ | __| | | | __ | / _` | | | / _` | | '_ ` _ \ + | |__| | | __/ | |_| | | (_| | | __/ | | | (_) | | | | __/ | (_| | | __/ / ____ \ | |_| | | (_) | | |_| | | |_) | | |____ | | | | | | | (_| | | | | (_| | | | | | | | + \____/ \___| \__,_| \__,_| \___| |_| \___/ |_| \___| \__,_| \___| /_/ \_\ \__, | \___/ \__,_| |_.__/ |______| |_| |_| |_| \__,_| | | \__,_| |_| |_| |_| + __/ | _/ | + |___/ |__/ +""" +#----------------------------------------------------------------------------------------# + +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() +