You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
3.5 KiB

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