From 7b4df2372f3cb22a1869c58647972c6e2c05f83d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?DELPUI=20Lo=C3=AFc?= Date: Wed, 20 Dec 2023 17:12:06 +0100 Subject: [PATCH] Supprimer 'projet bataille.py' --- projet bataille.py | 173 --------------------------------------------- 1 file changed, 173 deletions(-) delete mode 100644 projet bataille.py diff --git a/projet bataille.py b/projet bataille.py deleted file mode 100644 index dbf7f0b..0000000 --- a/projet bataille.py +++ /dev/null @@ -1,173 +0,0 @@ -from tkinter import * -from File import * -from random import shuffle -from tkinter import messagebox -import sqlite3 - -class Carte: - def __init__(self, valeur, couleur): - 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 (ils sont directement utilisées en tant qu'indice des listes) - if self.valeur > other.valeur: - return 1 - elif self.valeur < other.valeur: - return 0 - return 2 - -class Jeux: - def __init__ (self, nbr_cartes): - self.nb = nbr_cartes - self.paquet = [] - for i in couleurs: - if self.nb == 52: - for j in numeros: - self.paquet.append(Carte(j, i)) - else: - for j in numeros[5:]: - self.paquet.append(Carte(j, i)) - shuffle(self.paquet) - - def distribue(self): - while len(self.paquet) > 0: - for player in players: - player.enfiler(self.paquet.pop(0)) - -def click(event): - global status, cartes_tour - - def afficher(): - for i in range(2): - canvas.itemconfig(player_cartecolor[i], fill = "#fff") - canvas.itemconfig(player_carte[i], text = cartes_tour[-i-1].valeur + cartes_tour[-i-1].couleur) - canvas.itemconfig(player_left[i], text = "Left : " + str(players[i].taille())) - if cartes_tour[-i-1].couleur in ["♥", "♦"]: - canvas.itemconfig(player_carte[i], fill = "#f00") - else: - canvas.itemconfig(player_carte[i], fill = "#000") - - def retourne_carte(): - for i in range(2): - canvas.itemconfig(player_cartecolor[i], fill = "#f77") - canvas.itemconfig(player_carte[i], text = "") - canvas.itemconfig(player_left[i], text = "Left : " + str(players[i].taille())) - - if players[0].taille() == 0: - messagebox.showinfo("Le joueur 2 a gagné", "LE JOUEUR 2 A GAGNÉ !") - exit() - if players[1].taille() == 0: - messagebox.showinfo("Le joueur 1 a gagné", "LE JOUEUR 1 A GAGNÉ !") - exit() - - x, y = event.x, event.y - if x > 50 and x < 150 and y > 100 and y < 250: - if status == 1: - cartes_tour = [] - cartes_tour.extend([players[0].defiler(), players[1].defiler()]) - winner = cartes_tour[-2].compare(cartes_tour[-1]) - if winner == 2: - status = 2 - else: - for carte in cartes_tour: - players[winner].enfiler(carte) - afficher() - elif status == 2: - cartes_tour.extend([players[0].defiler(), players[1].defiler()]) - retourne_carte() - status = 3 - else: - cartes_tour.extend([players[0].defiler(), players[1].defiler()]) - winner = cartes_tour[-2].compare(cartes_tour[-1]) - if winner == 2: - status = 2 - else: - status = 1 - for carte in cartes_tour: - players[winner].enfiler(carte) - afficher() - 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 -#J=Jack -#Q=Queen -#R=Roi -#S=aS - -def starting(nb_cartes): - global jeu - jeu = Jeux(nb_cartes) - start.destroy() - -start = Tk() -start_title = Label(start, text = "La Bataille", font = ("Courrier New", 30, "bold")) -start_title.pack() -button_32 = Button(start, text = "Jeu de 32 cartes", font = ("Courrier New", 20, "bold"), command = lambda: starting(32)) -button_32.pack() -button_52 = Button(start, text = "Jeu de 52 cartes", font = ("Courrier New", 20, "bold"), command = lambda: starting(52)) -button_52.pack() -start.mainloop() - -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, 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() - -window = Tk() -window.title("Bataille") -window.geometry(f"700x400+300+200") - -canvas = Canvas(window, width = 650, height = 300, background = "#070") -canvas.place(x = 25, y = 50) - -canvas.create_rectangle(50, 100, 150, 250, fill = "#f77") -canvas.create_rectangle(500, 100, 600, 250, fill = "#f77") -player_cartecolor = [canvas.create_rectangle(200, 75, 300, 225, fill = "#fff"), canvas.create_rectangle(350, 75, 450, 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("