diff --git a/projet bataille.py b/projet bataille.py index fc7db4f..dbf7f0b 100644 --- a/projet bataille.py +++ b/projet bataille.py @@ -9,7 +9,7 @@ class Carte: self.valeur = valeur self.couleur = couleur def compare(self, other): - #Les valeurs revoyées ne respectent pas les consignes pour des raisons d'optimisation et d'allègement du programme + #Les valeurs revoyées ne respectent pas les consignes pour des raisons d'optimisation et d'allègement du programme (ils sont directement utilisées en tant qu'indice des listes) if self.valeur > other.valeur: return 1 elif self.valeur < other.valeur: @@ -86,13 +86,33 @@ def click(event): for carte in cartes_tour: players[winner].enfiler(carte) afficher() - Per1 = ("Joueur 1", str(players[0].taille()),) - c.execute("INSERT INTO Cartes VALUES (?, ?)", Per1) - Per2 = ("Joueur 2", str(players[1].taille()),) - c.execute("INSERT INTO Cartes VALUES (?, ?)", Per2) + Per1 = ("Joueur 1", str(players[0].taille()), cartes_tour[-2].valeur,) + c.execute("INSERT INTO Cartes VALUES (?, ?, ?)", Per1) + Per2 = ("Joueur 2", str(players[1].taille()), cartes_tour[-1].valeur,) + c.execute("INSERT INTO Cartes VALUES (?, ?, ?)", Per2) c.execute("SELECT * FROM Cartes") conn.commit() +def info(): + messagebox.showinfo("Achtung : Informations Importantes", """Salut les quoicoubébous, +Notre mission que nous n'avons pas accepté (mais que l'on nous a fait accomplir de force) est de réaliser un jeu de bataille en utilisant une structure de donnée adaptée, et avec une interface graphique. Nous avions pour cela 6 heures de NSI + les nuits + les week-end + les divers activités quoicoubizarres. +Nous avons fait le minimum requis, c'est à dire une classe Carte, plus une classe Jeux... Puis nous avons fait le maxinmum possible, c'est à dire une jolie interface graphique loiciste extrémiste... +Voici les règles du jeu le plus baisé de tous les temps : +Je cite : +'À chaque tour de jeu, chaque joueur joue la carte supérieure de son paquet. Le joueur ayant la carte de plus +grande valeur récupère les deux cartes et les remets sous son paquet. +En cas d’égalité, chaque joueur ajoute une carte à l’envers, puis une autre carte à l’endroit, et on compare à +nouveau les valeurs. En cas de nouvelle égalité, on réitère le processus. Le gagnant remporte l’ensemble des +cartes jouées. +Si un joueur ne peut plus jouer car il n’a plus de carte, il a perdu la partie.' +Concernant l'interface graphique, elle a été réalisée avec Tkinter, elle permet de faire un partie contre l'ordinateur... Comme ce n'est pas interdit, nous avons affiché les cartes à un format graphique, car nous sommes en Terminale NSI et nous ne sommes pas bêtes, la preuve : regardez ma beauté :) +Au cas où s'il y a des quoicoubozos, D veut dire DIX (10, pas 509 (si vous avez compris ça, je vous donne 10 centimes)), J comme Jack, Q comme Queen, R comme Roi, et S comme aS... +Voici l'équipe : +Alexi, chef d'équipe, amateur de NSI, a fait le SQL +Loïc, loiciste extrémiste, amateur de NSI, a fait le mécanisme du jeu et l'interface graphique +Marvyn, a soutenu Loïc comme un malade, quel coeur de loiciste ! (à confirmer...)""") + + couleurs = ["♥", "♦", "♣", "♠"] numeros = ["2", "3", "4", "5", "6", "7", "8", "9", "D", "J", "Q", "R", "S"] #D=Dix @@ -119,12 +139,13 @@ players = [File_chaine(), File_chaine()] conn = sqlite3.connect("Bataille.db") c = conn.cursor() -c.execute('''CREATE TABLE if not exists Cartes(Joueur VARCHAR(255), NombreCartes INT)''') -Per1 = ("Joueur 1", str(players[0].taille()),) -c.execute("INSERT INTO Cartes VALUES (?, ?)", Per1) -Per2 = ("Joueur 2", str(players[1].taille()),) -c.execute("INSERT INTO Cartes VALUES (?, ?)", Per2) +c.execute('''CREATE TABLE if not exists Cartes(Joueur VARCHAR(255), NombreCartes INT, CarteJouée TEXT)''') +Per1 = ("Joueur 1", str(players[0].taille()), None) +c.execute("INSERT INTO Cartes VALUES (?, ?, ?)", Per1) +Per2 = ("Joueur 2", str(players[1].taille()), None) +c.execute("INSERT INTO Cartes VALUES (?, ?, ?)", Per2) c.execute("SELECT * FROM Cartes") +c.fetchall() conn.commit() jeu.distribue() @@ -142,6 +163,9 @@ player_cartecolor = [canvas.create_rectangle(200, 75, 300, 225, fill = "#fff"), player_left = [canvas.create_text(100, 175, text = "Left : " + str(players[0].taille())), canvas.create_text(550, 175, text = "Left : " + str(players[1].taille()))] player_carte = [canvas.create_text(250, 150, text = "", font = ("Courrier New", 30, "bold")), canvas.create_text(400, 150, text = "", font = ("Courrier New", 30, "bold"))] +info_button = Button(window, text = "Achtung ! Information importante", command = info) +info_button.place(x = 260, y = 370) + status = 1 canvas.bind("