bollet.c
1 year ago
11 changed files with 315 additions and 75 deletions
@ -0,0 +1,11 @@ |
|||||
|
.-''-. .---. ________ .-''-. |
||||
|
.'_ _ \ | ,_| | | .'_ _ \ |
||||
|
/ ( ` ) ',-./ ) | .----' / ( ` ) ' |
||||
|
. (_ o _) |\ '_ '`) | _|____ . (_ o _) | |
||||
|
| (_,_)___| > (_) ) |_( )_ || (_,_)___| |
||||
|
' \ .---.( . .-' (_ o._)__|' \ .---. |
||||
|
\ `-' / `-'`-'|___ |(_,_) \ `-' / |
||||
|
\ / | \| | \ / |
||||
|
`'-..-' `--------`'---' `'-..-' |
||||
|
|
||||
|
|
@ -0,0 +1,10 @@ |
|||||
|
.-. .-') .-') _ _ .-') |
||||
|
\ ( OO ) ( OO ) ) ( \( -O ) |
||||
|
;-----.\ .-'),-----. ,--./ ,--,' ,--. .-'),-----. ,--. ,--. ,------. |
||||
|
| .-. | ( OO' .-. '| \ | |\ .-')| ,|( OO' .-. ' | | | | | /`. ' |
||||
|
| '-' /_)/ | | | || \| | )( OO |(_|/ | | | | | | | .-') | / | | |
||||
|
| .-. `. \_) | |\| || . |/ | `-'| |\_) | |\| | | |_|( OO )| |_.' | |
||||
|
| | \ | \ | | | || |\ | ,--. | | \ | | | | | | | `-' /| . '.' |
||||
|
| '--' / `' '-' '| | \ | | '-' / `' '-' '(' '-'(_.-' | |\ \ |
||||
|
`------' `-----' `--' `--' `-----' `-----' `-----' `--' '--' |
||||
|
|
@ -0,0 +1,7 @@ |
|||||
|
___ ___ |
||||
|
/ __| __ _ _ __ ___ o O O / _ \ __ __ ___ _ _ |
||||
|
| (_ | / _` | | ' \ / -_) o | (_) | \ V / / -_) | '_| |
||||
|
\___| \__,_| |_|_|_| \___| TS__[O] \___/ _\_/_ \___| _|_|_ |
||||
|
_|"""""|_|"""""|_|"""""|_|"""""| {======|_|"""""|_|"""""|_|"""""|_|"""""| |
||||
|
"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'./o--000'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-' |
||||
|
|
@ -0,0 +1,11 @@ |
|||||
|
▄████ █ ██ ▓█████ ██▀███ ██▀███ ██▓▓█████ ██▀███ |
||||
|
██▒ ▀█▒ ██ ▓██▒▓█ ▀ ▓██ ▒ ██▒▓██ ▒ ██▒▓██▒▓█ ▀ ▓██ ▒ ██▒ |
||||
|
▒██░▄▄▄░▓██ ▒██░▒███ ▓██ ░▄█ ▒▓██ ░▄█ ▒▒██▒▒███ ▓██ ░▄█ ▒ |
||||
|
░▓█ ██▓▓▓█ ░██░▒▓█ ▄ ▒██▀▀█▄ ▒██▀▀█▄ ░██░▒▓█ ▄ ▒██▀▀█▄ |
||||
|
░▒▓███▀▒▒▒█████▓ ░▒████▒░██▓ ▒██▒░██▓ ▒██▒░██░░▒████▒░██▓ ▒██▒ |
||||
|
░▒ ▒ ░▒▓▒ ▒ ▒ ░░ ▒░ ░░ ▒▓ ░▒▓░░ ▒▓ ░▒▓░░▓ ░░ ▒░ ░░ ▒▓ ░▒▓░ |
||||
|
░ ░ ░░▒░ ░ ░ ░ ░ ░ ░▒ ░ ▒░ ░▒ ░ ▒░ ▒ ░ ░ ░ ░ ░▒ ░ ▒░ |
||||
|
░ ░ ░ ░░░ ░ ░ ░ ░░ ░ ░░ ░ ▒ ░ ░ ░░ ░ |
||||
|
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ |
||||
|
|
||||
|
|
@ -0,0 +1,10 @@ |
|||||
|
▄▄▄▄███▄▄▄▄ ▄████████ ▄██████▄ ▄█ ▄████████ ▄█ ▄████████ ███▄▄▄▄ |
||||
|
▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███▀▀▀██▄ |
||||
|
███ ███ ███ ███ ███ ███ █▀ ███▌ ███ █▀ ███▌ ███ █▀ ███ ███ |
||||
|
███ ███ ███ ███ ███ ▄███ ███▌ ███ ███▌ ▄███▄▄▄ ███ ███ |
||||
|
███ ███ ███ ▀███████████ ▀▀███ ████▄ ███▌ ███ ███▌ ▀▀███▀▀▀ ███ ███ |
||||
|
███ ███ ███ ███ ███ ███ ███ ███ ███ █▄ ███ ███ █▄ ███ ███ |
||||
|
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ |
||||
|
▀█ ███ █▀ ███ █▀ ████████▀ █▀ ████████▀ █▀ ██████████ ▀█ █▀ |
||||
|
|
||||
|
|
@ -0,0 +1,26 @@ |
|||||
|
88888888888 888 .d88888b. 888 |
||||
|
888 888 d88P" "Y88b 888 |
||||
|
888 888 888 888 888 |
||||
|
888 88888b. .d88b. 888 888 888 888 .d88b. .d8888b 888888 |
||||
|
888 888 "88b d8P Y8b 888 888 888 888 d8P Y8b 88K 888 |
||||
|
888 888 888 88888888 888 Y8b 888 888 888 88888888 "Y8888b. 888 |
||||
|
888 888 888 Y8b. Y88b.Y8b88P Y88b 888 Y8b. X88 Y88b. |
||||
|
888 888 888 "Y8888 "Y888888" "Y88888 "Y8888 88888P' "Y888 |
||||
|
Y8b |
||||
|
.d888 |
||||
|
d88P" |
||||
|
888888 .d88b. 888d888 |
||||
|
888 d88""88b 888P" |
||||
|
888 888 888 888 |
||||
|
888 Y88..88P 888 |
||||
|
888 "Y88P" 888 |
||||
|
|
||||
|
.d888 888 |
||||
|
d88P" 888 |
||||
|
888 888 |
||||
|
888888 888d888 .d88b. .d88b. .d88888 .d88b. 88888b.d88b. |
||||
|
888 888P" d8P Y8b d8P Y8b d88" 888 d88""88b 888 "888 "88b |
||||
|
888 888 88888888 88888888 888 888 888 888 888 888 888 |
||||
|
888 888 Y8b. Y8b. Y88b 888 Y88..88P 888 888 888 |
||||
|
888 888 "Y8888 "Y8888 "Y88888 "Y88P" 888 888 888 |
||||
|
|
@ -0,0 +1,12 @@ |
|||||
|
/$$ |
||||
|
| $$ |
||||
|
/$$ /$$ /$$$$$$ | $$ /$$$$$$ /$$ /$$ /$$$$$$ |
||||
|
| $$ /$$//$$__ $$| $$ /$$__ $$| $$ | $$ /$$__ $$ |
||||
|
\ $$/$$/| $$ \ $$| $$| $$$$$$$$| $$ | $$| $$ \__/ |
||||
|
\ $$$/ | $$ | $$| $$| $$_____/| $$ | $$| $$ |
||||
|
\ $/ | $$$$$$/| $$| $$$$$$$| $$$$$$/| $$ |
||||
|
\_/ \______/ |__/ \_______/ \______/ |__/ |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,8 @@ |
|||||
|
__ __ U ___ u _ _ U ___ u _ _ _ |
||||
|
\ \ / / \/"_ \/U |"|u| | __ __ \/"_ \/ | \ |"| U|"|u |
||||
|
\ V / | | | | \| |\| | \"\ /"/ | | | |<| \| |> \| |/ |
||||
|
U_|"|_u.-,_| |_| | | |_| | /\ \ /\ / /\.-,_| |_| |U| |\ |u |_| |
||||
|
|_| \_)-\___/ <<\___/ U \ V V / U\_)-\___/ |_| \_| (_) |
||||
|
.-,//|(_ \\ (__) )( .-,_\ /\ /_,-. \\ || \\,-. |||_ |
||||
|
\_) (__) (__) (__) \_)-' '-(_/ (__) (_") (_/ (__)_) |
||||
|
|
@ -1,12 +1,125 @@ |
|||||
class FenetreCombat(): |
from time import sleep |
||||
def __init__(self, nom, texte_de_presentation): |
|
||||
"""initialise une interface pour un combat""" |
#======fonctions utiles====== |
||||
self.texte_de_presentation = texte_de_presentation |
def cls(): |
||||
|
"""efface la console""" |
||||
self.instructions() |
print("\033[H\033[J", end="") |
||||
def instructions(self): |
|
||||
print(texte_de_presentation) |
|
||||
def affiche_fichier(path): |
def affiche_fichier(path): |
||||
with open(path, 'r') as file: |
"""affiche le contenu d'un fichier - ici ce seront des fichiers textes""" |
||||
|
with open(path, 'r', encoding="utf8") as file: |
||||
for line in file: |
for line in file: |
||||
print(line) |
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() |
||||
|
|
||||
|
|
||||
|
#===========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...") |
@ -1,38 +1,67 @@ |
|||||
from random import randint, choice |
from random import randint, choice |
||||
from personnage import Personnage |
from personnage import Personnage |
||||
from interface import Accueil |
from interface import * |
||||
|
|
||||
def combat(perso1, perso2): |
def combat(perso1, perso2): |
||||
"""simule un combat jusqu'à ce que les joueurs n'aient plus de vies""" |
"""simule un combat jusqu'à ce que les joueurs n'aient plus de vies""" |
||||
|
cls() |
||||
|
input("Pressez Entrée pour combattre...") |
||||
|
cls() |
||||
|
|
||||
attaquant = perso1 |
attaquant = perso1 |
||||
defenseur = perso2 |
defenseur = perso2 |
||||
while perso1.pdv > 0 and perso2.pdv > 0: |
while perso1.pdv > 0 and perso2.pdv > 0: |
||||
|
perso1_anciens_pdv = perso1.pdv |
||||
|
perso2_anciens_pdv = perso2.pdv |
||||
if attaquant.jet_attaque() > defenseur.jet_defense(): |
if attaquant.jet_attaque() > defenseur.jet_defense(): |
||||
defenseur.change_pdv(-randint(1,8)) |
defenseur.change_pdv(-randint(1,8)) |
||||
elif attaquant.jet_attaque() < defenseur.jet_defense(): |
elif attaquant.jet_attaque() < defenseur.jet_defense(): |
||||
attaquant.change_pdv(-randint(1,4)) |
attaquant.change_pdv(-randint(1,4)) |
||||
perso1.affiche_caracteristiques() |
#perso1.affiche_caracteristiques() |
||||
perso2.affiche_caracteristiques() |
#perso2.affiche_caracteristiques() |
||||
attaquant, defenseur = defenseur , attaquant |
cls() |
||||
|
print("Vous avez\033[36m",perso1.pdv,"\033[0mpoints de vie", end=" ") |
||||
|
diff = perso1.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.pdv,"\033[0mpoints de vie", end=" ") |
||||
|
diff = perso2.pdv - perso2_anciens_pdv |
||||
|
if diff < 0: |
||||
|
color = 32 |
||||
|
else: |
||||
|
color = 39 |
||||
|
print("(\033["+str(color)+"m"+str(diff)+"\033[0m points)\n") |
||||
|
input("[Entrée]") |
||||
|
|
||||
|
attaquant, defenseur = defenseur , attaquant |
||||
|
#changement de l'exp |
||||
if perso1.pdv > 0: |
if perso1.pdv > 0: |
||||
perso1.change_exp(1) |
perso1.change_exp(1) |
||||
else: |
else: |
||||
perso2.change_exp(1) |
perso2.change_exp(1) |
||||
|
|
||||
def main(): |
def main(): |
||||
accueil("Jeu de rôle") |
"""programme principal""" |
||||
print("Bienvenue dans...") |
intro_bool = input("Voulez-vous l'intro longue ou courte ? (longue/courte) : ") |
||||
affiche_fichier("ascii/titre_accueil.txt") |
if intro_bool == "longue": |
||||
|
(nomJoueur1, catJoueur1) = intro_longue() |
||||
nomJoueur1 = input("Quel est votre nom ? ") |
else: |
||||
print("Vous pouvez être : \n guerrier \n magicien \n voleur \n elfe") |
(nomJoueur1, catJoueur1) = intro_courte() |
||||
catJoueur1 = input("Quel est votre catégorie (l'écrire en toutes lettres) ? ") |
|
||||
while not(catJoueur1 in ["guerrier","magicien","voleur","elfe"]): |
|
||||
print("Vous devez choisir une catégorie parmi : \n guerrier, \n magicien, \n voleur, \n et elfe.") |
|
||||
catJoueur1 = input("Quel est votre personnage (l'écrire en toutes lettres) ? ") |
|
||||
joueur1 = Personnage(nomJoueur1, catJoueur1) |
joueur1 = Personnage(nomJoueur1, catJoueur1) |
||||
joueur2 = Personnage("ennemi", choice(["guerrier","magicien","voleur","elfe"])) |
joueur2 = Personnage("ennemi", choice(["guerrier","magicien","voleur","elfe"])) |
||||
|
|
||||
|
#le combat ! |
||||
combat(joueur1, joueur2) |
combat(joueur1, joueur2) |
||||
|
#affichage des résultats |
||||
|
if joueur1.exp > joueur2.exp: |
||||
|
youWon(perso1.nom) |
||||
|
else: |
||||
|
gameOver() |
||||
|
|
||||
if __name__ == "__main__": |
if __name__ == "__main__": |
||||
main() |
main() |
Loading…
Reference in new issue