# MAIN ```python= import Joueurs.sorcier as Sorcier import Joueurs.chevalier as Chevalier import Joueurs.elfe as Elfe import Ennemis.loup_garou as Loup_garou import Ennemis.troll as Troll import Ennemis.Vampire as Vampire from Joueurs import elfe # Définir le nombre de joueurs def nombre_joueur(): nombre_joueur = int(input(" 1. solo \n 2. multijoueur \n")) if nombre_joueur == 1: creer_joueur(1) return if nombre_joueur == 2: print("Les deux joueurs ne peuvent pas avoir le même personnage.") creer_joueur(2) return # Création objet (personnages) def creer_joueur(nombre_joueur): global ennemi choix_classe = int(input("Quel personnage incarnerez-vous aujourd'hui?\n 1: Sorcier \n 2: Chevalier \n 3: Elfe \n")) if choix_classe == 1: joueur = Sorcier.sorcier() nom = str(input("nom J1 : ")) joueur.nom = nom print(joueur.nom, " incarne le sorcier du marais sombre, il pourra alors utiliser une potion de soin.") if choix_classe == 2: joueur = Chevalier.Chevalier() nom = str(input("nom J1: ")) joueur.nom = nom print(joueur.nom, " est sacré chevalier de la couronne des bois lointain") if choix_classe == 3: joueur = Elfe.Elfe() nom = str(input("nom J1 : ")) joueur.nom = nom print(joueur.nom, " vois ses oreilles grandir est devient l'elfe protecteur de la foret ancienne.") if nombre_joueur == 1: adversaire_hasard = 0 adversaire_hasard = rd.randint(1, 3) if adversaire_hasard == 1: ennemi = Loup_garou.Loup_garou() print(joueur.nom, " affronte le terrible loup-garou") ennemi.nom = 'Loup garou' if adversaire_hasard == 2: ennemi = Troll.Troll() print(joueur.nom, " réveille le troll de son sommeil et va en subir les conséquences!") ennemi.nom = 'Troll' if adversaire_hasard == 3: ennemi = Vampire.Vampire() print(joueur.nom, " défie le vampire") ennemi.nom = 'Vampire' return jouer(nombre_joueur, joueur, ennemi) if nombre_joueur == 2: choix_classe2 = int(input("Quel héro incarnerez-vous? \n 1: Sorcier \n 2: Chevalier \n 3: Elfe \n")) if choix_classe != 1 and choix_classe2 == 1: ennemi = Sorcier.Sorcier() nom = str(input("nom J2 ")) ennemi.nom = nom print(ennemi.nom, " incarne le sorcier du marais sombre, il pourra alors utiliser une potion de soin.") return jouer(nombre_joueur, joueur, ennemi) if choix_classe != 2 and choix_classe2 == 2: ennemi = Chevalier.Chevalier() nom = str(input("nom J2 : ")) ennemi.nom = nom print(ennemi.nom, "est sacré chevalier de la couronne des bois lointain.") return jouer(nombre_joueur, joueur, ennemi) if choix_classe != 3 and choix_classe2 == 3: ennemi = Elfe.Elfe() nom = str(input("nom J2: ")) ennemi.nom = nom print(ennemi.nom, " vois ses oreilles grandir est devient l'elfe protecteur de la foret ancienne.") return jouer(nombre_joueur, joueur, ennemi) def tour_sorcier(joueur, ennemi): print("Tour de", joueur.nom) if joueur.parer == True: joueur.set_parer() tour = 0 tour = int(input("\n 1 ensorceler \n 2 potion de soin \n 3 parer \n")) if tour == 1: joueur.ensorceler(ennemi) elif tour == 2: joueur.se_soigner() elif tour == 3: if joueur.cooldown_parer == 0: joueur.set_parer() def tour_elfe(joueur, ennemi): print("\nTour de", joueur.nom) if joueur.parer == True: joueur.set_parer() tour = 0 tour = int(input("\n 1 coup d'épée \n 2 parer \n")) if tour == 1: joueur.coup_epee(ennemi) elif tour == 2: if joueur.cooldown_parer == 0: joueur.set_parer() def tour_chevalier(joueur, ennemi): print("\nTour de", joueur.nom) if joueur.parer == True: joueur.set_parer() tour = 0 tour = int(input("\n 1 jeter sa lance \n 2 parer \n")) if tour == 1: joueur.attaque_lance(ennemi) elif tour == 2: if joueur.cooldown_parer == 0: joueur.set_parer() def tour_ennemi(joueur, ennemi): print("\nTour de ", ennemi.nom) ennemi.attaque(joueur) if type(ennemi) == type(Vampire.Vampire): ennemi.voler_hp(joueur) def jouer(nombre_joueur,joueur,ennemi): i = 0 while joueur.mort == False or ennemi.mort == False: print("\nTOUR", i + 1) i += 1 joueur.set_mort() ennemi.set_mort() if joueur.mort == True or ennemi.mort == True: if joueur.mort == True: print("GAME OVER!") return if ennemi.mort == True: print("VICTOIRE! Vous pouvez maintenant déliverer les prisonnier de votre ennemi!") return # pour jouer seul if nombre_joueur == 1: time.sleep(3) if type(joueur) == type(elfe.Elfe()): tour_elfe(joueur, ennemi) from Joueurs import sorcier if type(joueur) == type(Sorcier.sorcier()): tour_sorcier(joueur, ennemi) if type(joueur) == type(Chevalier.Chevalier()): tour_chevalier(joueur, ennemi) joueur.dec_cooldown_joueur() time.sleep(3) tour_ennemi(joueur, ennemi) ennemi.dec_cooldown_ennemi() # pour jouer a 2 if nombre_joueur == 2: # 1er joueur time.sleep(3) if type(joueur) == type(Elfe.Elfe()): tour_elfe(joueur, ennemi) if type(joueur) == type(Sorcier.Sorcier()): tour_sorcier(joueur, ennemi) if type(joueur) == type(Chevalier.Chevalier()): tour_chevalier(joueur, ennemi) # 2e joueur time.sleep(3) if type(ennemi) == type(Elfe.Elfe()): tour_elfe(ennemi, joueur) if type(ennemi) == type(Sorcier.Sorcier()): tour_sorcier(ennemi, joueur) if type(ennemi) == type(Chevalier.Chevalier()): tour_chevalier(ennemi, joueur) # Appels fonctions nombre_joueur() # Fin du jeu print("FIN") time.sleep(3) print("Ce monde à encore besoin de vous et de vos stratagèmes, revenez à l'occasion") ``` # PERSONNAGES ```python= class Personnage(): def __init__(self): self.pv = 100 self.dps = 10 self.vit = 1 self.mort = False self.blesse = False self.parer = False self.is_joueur = False self.is_chevalier = False self.is_sorcier = False self.is_elfe = False self.is_ennemi = False self.is_troll = False self.is_loup_garou = False self.is_vampire = False def attaquer(self,target): if target.parer == True : print(target.nom," a paré le coup") return if target.is_troll == True: pv_avant = target.pv target.pv = target.pv - self.dps + self.dps*(1/2) print(target.nom," a perdu ",pv_avant - target.pv,"hp") print(target.nom," à maintenant", target.pv,"hp") return else: pv_avant = target.pv target.pv = target.pv - self.dps print(target.nom," a perdu ",pv_avant - target.pv,"hp") print(target.nom," à maintenant ", target.pv,"hp") def set_mort(self): if self.pv <= 0: self.mort = True print(self.nom,"est mort") ``` # JOUEURS ```python= #import bibli# import Personnage as Personnage class Joueur(Personnage.Personnage): def __init__(self, nom='Joueur'): super().__init__() self.cooldown_1 = 0 self.cooldown_2 = 0 self.cooldown_parer = 0 self.nom = nom def set_parer(self): if self.cooldown_parer != 0: print(self.nom," n'est plus en position pour parer") self.parer = False else: print(self.nom," est en position pour parer") self.parer = True self.cooldown_parer = 2 ``` # chevalier ```python= # IMPORTS # import Joueurs.joueur as Joueur class Chevalier(Joueur.Joueur): def __init__(self): super().__init__() self.pv_max = (Joueur.Joueur().pv*500)//100 self.pv = (Joueur.Joueur().pv*500)//100 self.dps = 200 self.is_chevalier = True self.is_joueur = True def attaque_lance(self,target): print(self.nom,"envoie sa lance sur",target.nom) self.attaquer(target) ``` # elfe ```python= import Joueurs.joueur as Joueur class Elfe(Joueur.Joueur): def __init__(self): super().__init__() self.pv_max = (Joueur.Joueur().pv*450)//100 self.pv = (Joueur.Joueur().pv*450)//100 self.dps = 200 self.is_elfe = True self.is_joueur = True def coup_epee(self,target): print(self.nom, " blesse ", target.nom, "grace à son épée magique") self.attaquer(target) ``` # sorcier ```python= import Joueurs.joueur as Joueur class sorcier(Joueur.Joueur): def __init__(self): super().__init__() self.pv_max = (Joueur.Joueur().pv * 300) // 100 self.pv = (Joueur.Joueur().pv * 300) // 100 self.dps = 200 self.is_sorcier = True self.is_joueur = True def se_soigner(self): if self.cooldown_1 == 0: print(self.nom, "récupère des hp grace à une potion") self.pv += 100 print(self.nom, " a maintenant ", self.pv, "hp") self.cooldown_1 = 3 else: print("le sorcier n'a pas eu le temps de finir sa potion, ensorcele ton ennemis pour te défendre ou parre " "son attaque ") def ensorceler(self, target): print(self.nom, " utilise ses pouvoirs sur ", target.nom) self.attaquer(target) ``` # ENNEMIS ```python= import Personnage as Personnage class Ennemi(Personnage.Personnage): def __init__(self, nom='Ennemi'): super().__init__() self.cooldown_1 = 0 self.nom = nom def dec_cooldown_ennemi(self): if self.cooldown_1 != 0: self.cooldown_1 -= 1 ``` # loug-garou ```python= import Ennemis.ennemi as Ennemi class Loup_garou(Ennemi.Ennemi): #constructeur def __init__(self): super().__init__() self.pv_max = (Ennemi.Ennemi().pv*500)//100 self.pv = (Ennemi.Ennemi().pv*500)//100 self.dps = 200 self.is_loup_garou = True self.is_ennemi = True def attaque(self,target): print(self.nom, " plante ses griffes sur ", target.nom) self.attaquer(target) ``` # troll ```python= import Ennemis.ennemi as Ennemi class Troll(Ennemi.Ennemi): def __init__(self): super().__init__() self.pv_max = (Ennemi.Ennemi().pv*400)//100 self.pv = (Ennemi.Ennemi().pv*400)//100 self.dps = 200 self.is_troll = True self.is_ennemi = True def attaque (self,target): print(self.nom, " donne un coup de pied à", target.nom) self.attaquer(target) ``` # vampire ``` import Ennemis.ennemi as Ennemi class Vampire(Ennemi.Ennemi): def __init__(self): super().__init__() self.pv_max = (Ennemi.Ennemi().pv*400)//100 self.pv = (Ennemi.Ennemi().pv*400)//100 self.dps = 200 self.is_vampire = True self.is_ennemi = True def voler_hp(self,target): print(self.nom, " vole des hp de ", target.nom) self.pv = self.pv + (target.pv*(1/10)) print(self.nom, " a maintenant ", self.pv, "hp") def attaque(self,target): print(self.nom, " plante ses crocs dans le cou de ", target.nom) self.attaquer(target) ```