# coding=utf-8 from random import randint, choice from personnage import Personnage from interface import * from base_de_donnee import BaseDeDonnee def nom_rnd(): c_lst = "azrtpqsdfghjklmwxcvbn" v_lst = "aeyuio" struct = "cvcvcv" res = "" for elem in struct: if elem == "c": res += choice(c_lst) else: res += choice(v_lst) return res.title def combat(perso1, perso2): """simule un combat jusqu'à ce que les joueurs n'aient plus de vies""" cls() input("Pressez Entrée pour combattre...") cls() attaquant = perso1 defenseur = perso2 while perso1.get_pdv() > 0 and perso2.get_pdv() > 0: perso1_anciens_pdv = perso1.get_pdv() perso2_anciens_pdv = perso2.get_pdv() if attaquant.jet_attaque() > defenseur.jet_defense(): defenseur.change_pdv(-randint(1,8)) elif attaquant.jet_attaque() < defenseur.jet_defense(): attaquant.change_pdv(-randint(1,4)) #perso1.affiche_caracteristiques() #perso2.affiche_caracteristiques() cls() print("Vous avez\033[36m",perso1.get_pdv(),"\033[0mpoints de vie", end=" ") diff = perso1.get_pdv() - perso1_anciens_pdv if diff < 0: color = 31 else: color = 39 print("(\033["+str(color)+"m"+str(diff)+"\033[0m points)") print("Votre ennemi a\033[36m",perso2.get_pdv(),"\033[0mpoints de vie", end=" ") diff = perso2.get_pdv() - perso2_anciens_pdv if diff < 0: color = 32 else: color = 39 print("(\033["+str(color)+"m"+str(diff)+"\033[0m points)\n") affiche_pdv(perso1,perso2) input("[Entrée]") attaquant, defenseur = defenseur, attaquant #changement de l'exp if perso1.get_pdv() > 0: perso1.change_exp(1) else: perso2.change_exp(1) def main(): """programme principal""" intro_bool = input("Voulez-vous l'intro longue ou courte ? (longue/courte) : ") if intro_bool == "longue": (nomJoueur1, catJoueur1) = intro_longue() else: (nomJoueur1, catJoueur1) = intro_courte() table_persos = BaseDeDonnee("persos") while True: try: joueur1 = Personnage(table_persos,nomJoueur1, catJoueur1) except NameError: if intro_bool == "longue": nomJoueur1 = input("En fait, votre nom ne me plaît pas, veuillez en proposer un autre : ") else: nomJoueur_tmp = nomJoueur1 nomJoueur1 = input("Nom déjà utilisé, entrez `supprimer` pour supprimer le personnage possédant le même nom, ou veuillez en proposer un autre : ") if nomJoueur1 == "supprimer": print("suppression du personnage...") table_persos.del_data(nomJoueur_tmp) print("Données suprimées") nomJoueur1 = nomJoueur_tmp else: break nomJoueur2 = choice(["Gründ","Blorp","Vla'ard","Kupis"]) while True: try: joueur2 = Personnage(table_persos,nomJoueur2, choice(["guerrier","magicien","voleur","elfe"])) except NameError: nomJoueur2 = nom_rnd() else: break #le combat ! combat(joueur1, joueur2) #affichage des résultats if joueur1.get_exp() > joueur2.get_exp(): youWon(joueur1.nom) else: gameOver() del table_persos if __name__ == "__main__": main()