|
|
|
# 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()
|