diff --git a/fin/personnage.py b/fin/personnage.py new file mode 100644 index 0000000..5b525f2 --- /dev/null +++ b/fin/personnage.py @@ -0,0 +1,181 @@ +import random +import sqlite3 + + +class Personnage: + + def __init__(self, nom, cat): + + self.nom = nom + + self.pdv = 20 + + self.exp = 1 + + self.cat = cat + + self.inventaire = [] + + + + if cat == 'combattant': + + self.inventaire = ['épée', 'potion'] + + elif cat == 'sorcier': + + self.inventaire = ['bâton', 'potion'] + + elif cat == 'voleur': + + self.inventaire = ['dague', 'potion'] + + elif cat == 'elfe': + + self.inventaire = ['arc', 'potion'] + + + + def jet_attaque(self): + + de_a_20_faces = random.randint(1, 20) + + coefficient_classe = 10 if self.cat in ['combattant', 'sorcier'] else 3 if self.cat == 'voleur' else 8 + + return de_a_20_faces + self.exp * coefficient_classe + + + + def jet_defense(self): + + de_a_20_faces = random.randint(1, 20) + + coefficient_classe = 8 if self.cat == 'combattant' else 7 if self.cat == 'sorcier' else 9 if self.cat == 'voleur' else 10 + + return de_a_20_faces + self.exp * coefficient_classe + + + + def change_pdv(self, nb_pdv): + + self.pdv += nb_pdv + + + + def change_exp(self, nb_exp): + + if nb_exp > 0: + + self.exp += nb_exp + + + + def affiche_caracteristiques(self): + + print(f"Nom: {self.nom}") + + print(f"Catégorie: {self.cat}") + + print(f"Points de vie: {self.pdv}") + + print(f"Expérience: {self.exp}") + + + + def affiche_inventaire(self): + + print(f"Inventaire de {self.nom}: {', '.join(self.inventaire)}") + + + +def mettre_a_jour_personnage(conn, personnage): + + c = conn.cursor() + + c.execute("UPDATE notes SET pdv = ? WHERE personnage = ?", (personnage.pdv, personnage.nom)) + + conn.commit() + + + +# Création de la base de données + +conn = sqlite3.connect("perso.db") + +c = conn.cursor() + +c.execute("CREATE TABLE if not exists notes(personnage TEXT, arme TEXT, heal TEXT, pdv float)") + +interros = [("combattant", "épée", "potion", 20), ("sorcier", "bâton", "potion", 20)] + +c.executemany("INSERT INTO notes VALUES ( ? , ? , ? , ? )", interros) + +c.execute("SELECT*FROM notes") + +print(c.fetchall()) + +conn.commit() + + + +# Création des personnages + +personnage1 = Personnage("Combattant1", "combattant") + +personnage2 = Personnage("Sorcier1", "sorcier") + + + +while personnage1.pdv > 0 and personnage2.pdv > 0: + + attaquant = personnage1 if random.random() < 0.5 else personnage2 + + defenseur = personnage2 if attaquant == personnage1 else personnage1 + + + + print(f"{attaquant.nom} attaque {defenseur.nom}!") + + jet_attaque = attaquant.jet_attaque() + + jet_defense = defenseur.jet_defense() + + + + if jet_attaque > jet_defense: + + degats = random.randint(1, 8) + + defenseur.change_pdv(-degats) + + print(f"{defenseur.nom} perd {degats} points de vie.") + + else: + + degats = random.randint(1, 4) + + attaquant.change_pdv(-degats) + + print(f"{attaquant.nom} perd {degats} points de vie.") + + + + personnage1.affiche_caracteristiques() + + personnage2.affiche_caracteristiques() + + + + mettre_a_jour_personnage(conn, personnage1) + + mettre_a_jour_personnage(conn, personnage2) + + + + print() + + + + + +conn.close() \ No newline at end of file diff --git a/fin/tinquiete_poto.py b/fin/tinquiete_poto.py new file mode 100644 index 0000000..5b525f2 --- /dev/null +++ b/fin/tinquiete_poto.py @@ -0,0 +1,181 @@ +import random +import sqlite3 + + +class Personnage: + + def __init__(self, nom, cat): + + self.nom = nom + + self.pdv = 20 + + self.exp = 1 + + self.cat = cat + + self.inventaire = [] + + + + if cat == 'combattant': + + self.inventaire = ['épée', 'potion'] + + elif cat == 'sorcier': + + self.inventaire = ['bâton', 'potion'] + + elif cat == 'voleur': + + self.inventaire = ['dague', 'potion'] + + elif cat == 'elfe': + + self.inventaire = ['arc', 'potion'] + + + + def jet_attaque(self): + + de_a_20_faces = random.randint(1, 20) + + coefficient_classe = 10 if self.cat in ['combattant', 'sorcier'] else 3 if self.cat == 'voleur' else 8 + + return de_a_20_faces + self.exp * coefficient_classe + + + + def jet_defense(self): + + de_a_20_faces = random.randint(1, 20) + + coefficient_classe = 8 if self.cat == 'combattant' else 7 if self.cat == 'sorcier' else 9 if self.cat == 'voleur' else 10 + + return de_a_20_faces + self.exp * coefficient_classe + + + + def change_pdv(self, nb_pdv): + + self.pdv += nb_pdv + + + + def change_exp(self, nb_exp): + + if nb_exp > 0: + + self.exp += nb_exp + + + + def affiche_caracteristiques(self): + + print(f"Nom: {self.nom}") + + print(f"Catégorie: {self.cat}") + + print(f"Points de vie: {self.pdv}") + + print(f"Expérience: {self.exp}") + + + + def affiche_inventaire(self): + + print(f"Inventaire de {self.nom}: {', '.join(self.inventaire)}") + + + +def mettre_a_jour_personnage(conn, personnage): + + c = conn.cursor() + + c.execute("UPDATE notes SET pdv = ? WHERE personnage = ?", (personnage.pdv, personnage.nom)) + + conn.commit() + + + +# Création de la base de données + +conn = sqlite3.connect("perso.db") + +c = conn.cursor() + +c.execute("CREATE TABLE if not exists notes(personnage TEXT, arme TEXT, heal TEXT, pdv float)") + +interros = [("combattant", "épée", "potion", 20), ("sorcier", "bâton", "potion", 20)] + +c.executemany("INSERT INTO notes VALUES ( ? , ? , ? , ? )", interros) + +c.execute("SELECT*FROM notes") + +print(c.fetchall()) + +conn.commit() + + + +# Création des personnages + +personnage1 = Personnage("Combattant1", "combattant") + +personnage2 = Personnage("Sorcier1", "sorcier") + + + +while personnage1.pdv > 0 and personnage2.pdv > 0: + + attaquant = personnage1 if random.random() < 0.5 else personnage2 + + defenseur = personnage2 if attaquant == personnage1 else personnage1 + + + + print(f"{attaquant.nom} attaque {defenseur.nom}!") + + jet_attaque = attaquant.jet_attaque() + + jet_defense = defenseur.jet_defense() + + + + if jet_attaque > jet_defense: + + degats = random.randint(1, 8) + + defenseur.change_pdv(-degats) + + print(f"{defenseur.nom} perd {degats} points de vie.") + + else: + + degats = random.randint(1, 4) + + attaquant.change_pdv(-degats) + + print(f"{attaquant.nom} perd {degats} points de vie.") + + + + personnage1.affiche_caracteristiques() + + personnage2.affiche_caracteristiques() + + + + mettre_a_jour_personnage(conn, personnage1) + + mettre_a_jour_personnage(conn, personnage2) + + + + print() + + + + + +conn.close() \ No newline at end of file