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.

133 lines
5.5 KiB

10 months ago
# coding=utf-8
from time import sleep
#======fonctions utiles======
def cls():
"""efface la console"""
print("\033[H\033[J", end="")
def affiche_fichier(path):
"""affiche le contenu d'un fichier - ici ce seront des fichiers textes"""
with open(path, 'r', encoding="utf8") as file:
for line in file:
print(line, end="")
print("")
def message_avec_suite(msg):
"""affiche un message lettre par lettre et attend que l'utilisateur presse 'Entrée'"""
for lettre in msg:
print(lettre, end="", flush=True)
sleep(0.02)
input("\n\n[Entrée]")
cls()
10 months ago
def affiche_pdv(joueur1, joueur2):
"""affiche les vies des joueurs"""
pdv_joueur1 = joueur1.pdv*"\033[31m♥\033[0m "+(20-max(0,joueur1.pdv))*"\033[37m♥\033[0m "
pdv_joueur2 = joueur2.pdv*"\033[31m♥\033[0m "+(20-max(0,joueur2.pdv))*"\033[37m♥\033[0m "
print(pdv_joueur1 + " "*10 + pdv_joueur2)
print("{:<45}{:>45}".format(joueur1.nom, joueur2.nom))
#===========Intros===========
def intro_longue():
"""intro du jeu, version longue
retourne le nom et la catégorie du joueur"""
cls()
#intro
message_avec_suite("Vous vous trouvez là, en face d'une porte mystérieuse.")
message_avec_suite("Hésitant un peu, vous la poussez, pour trouver un être étrange, assis derrière un bureau moderne.")
message_avec_suite("La porte se referme violemment derrière vous, comme par \033[3mmagie\033[0m.")
message_avec_suite("Vous êtes dans une fâcheuse position.")
affiche_fichier("ascii/titre_accueil.txt")
input("Appuyez sur Entrée pour jouer...")
cls()
#salutations
message_avec_suite("L'être étrange vous salue, d'une voix artificielle : \n")
affiche_fichier("ascii/etreEtrange.txt")
#nom du joueur
nomJoueur1 = input("\n\n Quel est ton nom ? : ")
while nomJoueur1 == "":
nomJoueur1 = input("J'aimerais bien savoir à qui je m'adresse ; quel est ton nom ? : ")
#42
if nomJoueur1 == "42":
youWon()
cls()
#2e partie de l'intro
#demander si 2 1ere l. pas superflues
message_avec_suite("Bon, "+nomJoueur1+", je vais t'offrir une seule chance de sortir d'ici.\nTu vas devoir affronter un de mes sbires.\nSi, par \033[3mchance\033[0m, tu arrives à gagner le combat, je te laisse sortir.")
q_reth = input("Acceptes-tu mon petit jeu ? (oui/oui) ")
if q_reth != "oui":
print("Parfait ! J'étais sûr que tu accepterais.")
message_avec_suite("Alors commençons...")
##choix des persos
print("Tu peux incarner 4 personnages.\nTous disposent d'une potion énergisante, qu'ils prendront automatiquement avant le combat.\n\n")
#guerrier
print("Le premier est le guerrier.")
affiche_fichier("ascii/guerrier.txt")
print("Voici ses stats: \nclasse d'attaque : 10 \nclasse de défense : 8")
print("Son arme préférée est l'épée.")
input("\n\nAppuyez sur Entrée pour voir le personnage suivant...")
cls()
#magicien
print("Le deuxième est le magicien.")
affiche_fichier("ascii/magicien.txt")
print("Voici ses stats: \nclasse d'attaque : 10 \nclasse de défense : 7")
print("Son arme préférée est le bâton.")
input("\n\nAppuyez sur Entrée pour voir le personnage suivant...")
cls()
#voleur
print("Le troisième est le voleur.")
affiche_fichier("ascii/voleur.txt")
print("Voici ses stats: \nclasse d'attaque : 3 \nclasse de défense : 3")
print("Son arme préférée est la dague.")
input("\n\nAppuyez sur Entrée pour voir le personnage suivant...")
cls()
#elfe
print("Le dernier est l'elfe.")
affiche_fichier("ascii/elfe.txt")
print("Voici ses stats: \nclasse d'attaque : 8 \nclasse de défense : 8")
print("Son arme préférée est l'arc.")
input("\n\nAppuyez sur Entrée pour choisir votre personnage...")
cls()
catJoueur1 = input("Donc, quel personnage choisis-tu ? \n Ecris le nom de ta catégorie en toutes lettres (guerrier/magicien/voleur/elfe) : ")
while not(catJoueur1 in ["guerrier","magicien", "voleur", "elfe"]):
cls()
print("Tu dois choisir une catégorie parmi : \n guerrier, \n magicien, \n voleur, \n et elfe.")
catJoueur1 = input("Donc, quel personnage choisis-tu ? \n Ecris le nom de ta catégorie en toutes lettres (guerrier/magicien/voleur/elfe) : ")
message_avec_suite("Que le combat commence !...")
return nomJoueur1, catJoueur1
def intro_courte():
"""intro du jeu, version courte
retourne le nom et la catégorie du joueur"""
nomJoueur1 = input("nom : ")
#42
if nomJoueur1 == "42":
youWon()
print("Les catégories sont : \n guerrier => entrez 0 \n magicien => entrez 1 \n voleur => entrez 2 \n elfe => entrez 3.")
catJoueur1 = input("catégorie : ")
while catJoueur1 not in ["0", "1", "2", "3"]:
print("Les catégories sont : \n guerrier => entrez 0 \n magicien => entrez 1 \n voleur => entrez 2 \n elfe => entrez 3.")
catJoueur1 = input("catégorie : ")
catJoueur1 = ["guerrier","magicien","voleur","elfe"][int(catJoueur1)]
return nomJoueur1, catJoueur1
#========Fins de partie==============
def youWon(nom):
"""affiche message de félicitation lorsque le joueur a gagné"""
print("Cher "+nom+", tu as gagné la partie ! (et ta liberté !)")
affiche_fichier("ascii/youWon.txt")
def gameOver():
"""affiche message de game over lorsque le joueur a perdu"""
affiche_fichier("ascii/game_over.txt")
print("Dommage...")