From c3cac031033aaac8f0b84d7054918378d8d5ce80 Mon Sep 17 00:00:00 2001 From: Joachim Date: Sun, 20 Apr 2025 14:48:34 +0200 Subject: [PATCH] init --- data/fond.png | Bin 0 -> 2342 bytes data/logo.png | Bin 0 -> 65973 bytes main.py | 452 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 452 insertions(+) create mode 100755 data/fond.png create mode 100755 data/logo.png create mode 100755 main.py diff --git a/data/fond.png b/data/fond.png new file mode 100755 index 0000000000000000000000000000000000000000..a9faec830251d9e0fbbeb15972f18dae8254e8a2 GIT binary patch literal 2342 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 P0Dmfq8VWUXkkJ1F+|?+| literal 0 HcmV?d00001 diff --git a/main.py b/main.py new file mode 100755 index 0000000..40c0503 --- /dev/null +++ b/main.py @@ -0,0 +1,452 @@ +import tkinter as tk +from tkinter import ttk +import tkinter.messagebox +from random import randint + + +class Snake: + """ + cree un serpent + Entree : int + Sortie : None + """ + + def __init__(self, v, s, cs): + """ + Parametre le serpent + Entree : self, int + Sortie : None + """ + self.__cells_to_wait = 0 + self.__velocity = v + self.__cells_size = cs + self.__direction = "Down" + self.__snake = [ + canvas.create_rectangle( + 245 + i, + 150, + 245 + i + cs, + 150 + cs, + width=2, + outline="#081820", + fill="#E0F8D0", + ) + for i in range(0, s * v, v) + ] + canvas.itemconfigure( + self.__snake[0], fill="#081820" + ) # change la couleur de la tete + + def __getitem__(self, item): + """ + renvoit certaines informations sur la liste __snake + Entree : self, int + Sortie : list, int, class, None + """ + if item == 0: + return canvas.coords(self.__snake[0]) + if item == 1: + return len(self.__snake) + if item == 3: + return self.__snake[0] + if item == 4: + return self.__snake + if item == 5: + return self.__snake[-1] + return None + + def diy(self, x, color): + """ + change la couleur du serpent + Entree : self, int, str + Sortie : None + """ + if x >= 1: + canvas.itemconfig(self.__snake[x], fill=color) + canvas.after(50, lambda: self.diy(x - 1, color)) # prochaine cellule + return None + + def move(self, color): + """ + fait avancer le serpent et informe si le serpent sort du cadre + Entree : self + Sortie : bool + """ + # for i in range(len(self.__snake) - 1, 0, -1): # bouge le corp du serpent + # canvas.move(self.__snake[i], canvas.coords(self.__snake[i - 1])[0] - canvas.coords(self.__snake[i])[0], + # canvas.coords(self.__snake[i - 1])[1] - canvas.coords(self.__snake[i])[1]) + if self.__cells_to_wait <= 0: + canvas.delete(self.__snake.pop(-1)) + else: + self.__cells_to_wait -= 1 + + # bouge la tête du serpent + head_coo = canvas.coords(self.__snake[0]) + canvas.itemconfig(self.__snake[0], fill="#E0F8D0") + if self.__direction == "Up": + # canvas.move(self.__snake[0], 0, -self.__velocity) + self.__snake = [ + canvas.create_rectangle( + head_coo[0], + head_coo[1] - self.__velocity, + head_coo[2], + head_coo[3] - self.__velocity, + width=2, + outline=color, + fill="#081820", + ) + ] + self.__snake + + elif self.__direction == "Down": + # canvas.move(self.__snake[0], 0, self.__velocity) + self.__snake = [ + canvas.create_rectangle( + head_coo[0], + head_coo[1] + self.__velocity, + head_coo[2], + head_coo[3] + self.__velocity, + width=2, + outline=color, + fill="#081820", + ) + ] + self.__snake + + elif self.__direction == "Left": + # canvas.move(self.__snake[0], -self.__velocity, 0) + self.__snake = [ + canvas.create_rectangle( + head_coo[0] - self.__velocity, + head_coo[1], + head_coo[2] - self.__velocity, + head_coo[3], + width=2, + outline=color, + fill="#081820", + ) + ] + self.__snake + + elif self.__direction == "Right": + # canvas.move(self.__snake[0], self.__velocity, 0) + self.__snake = [ + canvas.create_rectangle( + head_coo[0] + self.__velocity, + head_coo[1], + head_coo[2] + self.__velocity, + head_coo[3], + width=2, + outline=color, + fill="#081820", + ) + ] + self.__snake + + return None + + def change_dir(self, event): + """ + change la direction de la tête et empeche le retour arriere + Entree : self, event + Sortie : None + """ + head = canvas.coords(self[3]) + cells = self.__snake + if event.keysym == "Up" and cells[1] in canvas.find_overlapping( + head[0], head[1] - self.__velocity, head[2], head[3] - self.__velocity + ): + return None + if event.keysym == "Down" and cells[1] in canvas.find_overlapping( + head[0], head[1] + self.__velocity, head[2], head[3] + self.__velocity + ): + return None + if event.keysym == "Left" and cells[1] in canvas.find_overlapping( + head[0] - self.__velocity, head[1], head[2] - self.__velocity, head[3] + ): + return None + if event.keysym == "Right" and cells[1] in canvas.find_overlapping( + head[0] + self.__velocity, head[1], head[2] + self.__velocity, head[3] + ): + return None + self.__direction = event.keysym # sinon, on applique le changement de direction + return None + + def add_cells(self, x): + """ + ajoute x cellules au serpent + Entree : self, int + Sortie : None + """ + # for i in range(x): + # self.__snake.append(canvas.create_rectangle(canvas.coords(self.__snake[-1])[0], + # canvas.coords(self.__snake[-1])[1], + # canvas.coords(self.__snake[-1])[2], + # canvas.coords(self.__snake[-1])[3], + # width=2, outline='#081820', fill="#E0F8D0")) + self.__cells_to_wait = x + return None + + def self_eater(self, pomme): + """ + verifie que le serpent ne rentre pas en contact avec lui même + Entree : self, instance de apple + Sortie : bool + """ + c_s = canvas.coords(self[3]) + tup = canvas.find_overlapping(c_s[0], c_s[1], c_s[2], c_s[3]) + if len(tup) > 2: + if pomme[3] in tup: + return False + return True + return False + + +class Apple: + """ + cree une pomme aux coordonnée x, y et lui donne un type + """ + + def __init__(self, s): + """ + parametre la class + Entree : self, int + Sortie : None + """ + if randint(1, 10) == 10: + self.__color = "yellow" + else: + self.__color = "red" + y = randint(20, 450) + x = randint(20, 450) + while len(canvas.find_overlapping(x, y, x + 10, y + 10)) > 1: + y = randint(20, 450) + x = randint(20, 450) + self.__apple = canvas.create_oval( + x, y, x + s, y + s, fill=self.__color, width=2, outline="#081820" + ) + + def __getitem__(self, item): + """ + revoit des informations sur l'instance + Entree : self, int + Sortie : list, instance, str + """ + if item == 0: + return canvas.coords(self.__apple) + if item == 1: + return self.__color + if item == 3: + return self.__apple + return None + + def delete_a(self): + """ + suprime la pomme + Entree : self + Sortie : None + """ + canvas.delete(self.__apple) + return None + + +def info(): + """ + affiche une boite d'information + Entree : None + Sortie : None + """ + tkinter.messagebox.showinfo( + title=None, + message="Blockade, créé par Gremlin en 1976, est le premier jeu de type snake connu. " + "Rapidement aprés sa création, il est devenu un succés sur les bornes " + "d'arcade. Les premières" + "apparitions du terme 'snake' remonte plutôt à 1982 avec des clones tels que " + "'Snake Byte'.\n\nLe clone ci-présent a été fait par Joachim Rey.", + ) + return None + + +def main(): + """ + gere le jeu + Entree : None + Sortie : None + """ + + def start(diff): + """ + commence le jeu + Entree : int + Sortie : None + """ + # reset le canva + canvas.delete("all") + canvas.create_image(0, 0, image=fond, anchor="nw") + canvas.create_window(260, 565, window=label) + canvas.create_rectangle(20, 20, 520, 520, outline="red") + + # cree les parametre du jeu + if diff == 1 or diff == 0: + serpent = Snake(6, 6, 5) + diff = "facile" + elif diff == 2: + serpent = Snake(11, 6, 10) + diff = "normal" + else: + serpent = Snake(21, 6, 20) + diff = "HARDCORE" + pomme = Apple(10) + score = 0 + + # attache les touches aux actions + root.bind("", serpent.change_dir) + root.bind("", serpent.change_dir) + root.bind("", serpent.change_dir) + root.bind("", serpent.change_dir) + label.config(text=f"score: {score} Taille: {serpent[1]}") + + # lance le jeu + game(serpent, pomme, score, diff) + + return None + + def game(serpent, pomme, score, diff): + """ + gere les deplacement du serpent, l'apparition de la pomme et la fin du jeu + Entree : instance de serpent, de pomme, int + Sortie : None + """ + c_p = canvas.coords(pomme[3]) + h_color = "#081820" + if serpent[3] in canvas.find_overlapping(c_p[0], c_p[1], c_p[2], c_p[3]): + if pomme[1] == "red": + score += 1 + serpent.add_cells(serpent[1] * 20 // 100) + h_color = "red" + else: + score += 5 + serpent.add_cells(serpent[1] * 50 // 100) + h_color = "yellow" + pomme.delete_a() + pomme = Apple(10) + label.config(text=f"score: {score} Taille: {serpent[1]}") + + if serpent.self_eater(pomme): + serpent.diy(serpent[1] - 1, "red") + rep = tkinter.messagebox.askretrycancel( + title=None, message="Oups, vous êtes devenu de la purée de serpent." + ) + with open("data/save.txt", "r") as file: + save = file.read() + if save.split(";")[0] == "" or int(save.split(";")[0]) < score: + with open("data/save.txt", "w") as file: + file.write(f"{str(score)};{diff}") + if rep: + main() + return None + else: + root.destroy() + return None + + else: + serpent.move(h_color) + canvas.after(60, lambda: game(serpent, pomme, score, diff)) + return None + + def diff_change(*args): # scale met par defaut un parametre + """ + change le texte de diff_affi + Entree : event + Sortie : None + """ + if round(diff.get()) == 1 or round(diff.get()) == 0: + diff_affi.configure(text="Difficulté: Facile", foreground="green") + elif round(diff.get()) == 2: + diff_affi.configure(text="Difficulté: Normal", foreground="black") + else: + diff_affi.configure(text="Difficulté: HARDCORE", foreground="red") + return None + + # reset la canva + canvas.delete("test") + + # tente de recuperer l'ancien meilleur score + try: + with open("data/save.txt", "r") as file: + save_s = file.read() + text_score = ( + "Meilleur score:\n" + + f"{save_s.split(';')[0]} en difficulté {save_s.split(';')[1]}" + ) + except FileNotFoundError: + with open("data/save.txt", "w") as file: + file.write("0;None") + text_score = "Meilleur score:\nVous n'avez pas de scores pour le moment\n lancez une partie :) !" + + # configure les boutons + best_score = ttk.Label( + canvas, + text=text_score, + font=("Helvetica", 14), + background="#E0F8D0", + justify="center", + ) + label = ttk.Label( + root, + text="Bienvenu sur Blockade Py !", + font=("Helvetica", 14), + background="#E0F8D0", + ) + diff = tk.DoubleVar() + diff_selec = ttk.Scale( + canvas, from_=1, to=3, orient="horizontal", command=diff_change, variable=diff + ) + start_button = ttk.Button( + canvas, + text="Commencer", + command=lambda: start(round(diff.get())), + style="my.TButton", + ) + info_button = ttk.Button( + canvas, text="?", command=info, style="info.TButton", width=3 + ) + diff_affi = ttk.Label( + root, + text="Difficulté: Facile", + font=("Helvetica", 14), + background="#E0F8D0", + foreground="green", + ) + + # affiche les widgets + canvas.create_window(270, 70, window=best_score) + canvas.create_window(270, 565, window=label) + canvas.create_window(499, 563, window=info_button) + canvas.create_window(270, 220, window=diff_affi) + canvas.create_window(270, 250, window=diff_selec) + canvas.create_window(270, 300, window=start_button) + canvas.create_image(0, 0, image=fond, anchor="nw") + + return None + + +if __name__ == "__main__": + # création de la fenetre + root = tk.Tk() + root.title("Snack") + root.iconphoto(False, tk.PhotoImage(file="data/logo.png")) + root.resizable(False, False) + + # definition du canva + fond = tk.PhotoImage(file="data/fond.png") + canvas = tk.Canvas(root, width=540, height=600, bg="black") + canvas.pack(fill="both", expand=True) + + # style des boutons (ttk) + style = ttk.Style(root) + style.theme_use("clam") + style.configure("my.TButton", bordercolor="#081820", bg="#e0f8d0") + style.configure("info.Tbutton", borderwidth=0, bordercolor="#081820", bg="#e0f8d0") + + # demarre le jeu + main() + + # boucle de la fenetre + root.mainloop()