diff --git a/mini_projet.py b/mini_projet.py deleted file mode 100644 index a01ad25..0000000 --- a/mini_projet.py +++ /dev/null @@ -1,136 +0,0 @@ -import tkinter as tk -from random import randint - -class Personnage: - def __init__(self, nom, cat): - self.nom = nom - self.pdv = 20 - self.exp = 1 - self.cat = cat - self.inventaire = [] - - if self.cat == "guerrier": - self.inventaire = ["épée", "potion"] - self.coefatk = 10 - self.coefdef = 8 - elif self.cat == "magicien": - self.inventaire = ["bâton", "potion"] - self.coefatk = 10 - self.coefdef = 7 - elif self.cat == "voleur": - self.inventaire = ["dague", "potion"] - self.coefatk = 3 - self.coefdef = 9 - elif self.cat == "elfe": - self.inventaire = ["arc", "potion"] - self.coefatk = 8 - self.coefdef = 10 - - def jet_attaque(self): - de_atk = randint(1, 20) - return de_atk + self.exp * self.coefatk - - def jet_defense(self): - de_def = randint(1, 20) - return de_def + self.exp * self.coefdef - - def change_pdv(self, nb_pdv): - self.pdv += nb_pdv - return self.pdv - - def change_exp(self, nb_exp): - self.exp += nb_exp - return self.exp - - def affiche_caracteristiques(self): - return f"Nom: {self.nom}, Catégorie: {self.cat}, Points de vie: {self.pdv}, Expérience: {self.exp}" - - def affiche_inventaire(self): - return f"Inventaire: {', '.join(self.inventaire)}" - -# Création de la fenêtre principale -root = tk.Tk() -root.title("Combat RPG") - -# Variables globales pour les personnages -perso1 = None -perso2 = None -tour = 1 - -# Fonctions pour le jeu -def creer_personnages(): - global perso1, perso2 - nom1 = entry_nom1.get() - cat1 = entry_cat1.get() - nom2 = entry_nom2.get() - cat2 = entry_cat2.get() - perso1 = Personnage(nom1, cat1) - perso2 = Personnage(nom2, cat2) - afficher_message(f"Personnages créés : {perso1.nom} le {perso1.cat} et {perso2.nom} le {perso2.cat}") - -def afficher_message(message): - text_area.insert(tk.END, message + "\n") - text_area.see(tk.END) - -def combat(): - global tour, perso1, perso2 - if perso1.pdv > 0 and perso2.pdv > 0: - afficher_message(f"\n--- Tour {tour} ---") - afficher_message(f"{perso1.nom} attaque {perso2.nom}") - attaque = perso1.jet_attaque() - defense = perso2.jet_defense() - if attaque > defense: - degats = randint(1, 8) - perso2.change_pdv(-degats) - afficher_message(f"{perso1.nom} inflige {degats} points de dégâts à {perso2.nom}") - else: - degats = randint(1, 4) - perso1.change_pdv(-degats) - afficher_message(f"{perso2.nom} esquive et inflige {degats} points de dégâts à {perso1.nom}") - - afficher_message(f"Caractéristiques de {perso1.nom} : {perso1.affiche_caracteristiques()}") - afficher_message(f"Caractéristiques de {perso2.nom} : {perso2.affiche_caracteristiques()}") - - # Changement de rôle - perso1, perso2 = perso2, perso1 - tour += 1 - else: - if perso1.pdv > 0: - perso1.change_exp(1) - afficher_message(f"\n{perso1.nom} a gagné le combat et gagne 1 point d'expérience!") - else: - perso2.change_exp(1) - afficher_message(f"\n{perso2.nom} a gagné le combat et gagne 1 point d'expérience!") - bouton_combat.config(state=tk.DISABLED) - -# Interface utilisateur -frame = tk.Frame(root) -frame.pack(pady=10) - -tk.Label(frame, text="Nom du premier personnage:").grid(row=0, column=0) -entry_nom1 = tk.Entry(frame) -entry_nom1.grid(row=0, column=1) - -tk.Label(frame, text="Catégorie du premier personnage:").grid(row=1, column=0) -entry_cat1 = tk.Entry(frame) -entry_cat1.grid(row=1, column=1) - -tk.Label(frame, text="Nom du deuxième personnage:").grid(row=2, column=0) -entry_nom2 = tk.Entry(frame) -entry_nom2.grid(row=2, column=1) - -tk.Label(frame, text="Catégorie du deuxième personnage:").grid(row=3, column=0) -entry_cat2 = tk.Entry(frame) -entry_cat2.grid(row=3, column=1) - -bouton_creer = tk.Button(frame, text="Créer les personnages", command=creer_personnages) -bouton_creer.grid(row=4, columnspan=2, pady=10) - -bouton_combat = tk.Button(frame, text="Lancer le combat", command=combat) -bouton_combat.grid(row=5, columnspan=2, pady=10) - -text_area = tk.Text(root, height=15, width=50) -text_area.pack(pady=10) - -# Lancer l'interface graphique -root.mainloop()