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 zcmeAS@N?(olHy`uVBq!ia0y~yV3J{AV2a>iVqjoc7P=ykfq}6#)7d$|)7e>}peR2r zGbfdSL1SX=L|c!;4iatmw|RwXvA$JMnzYa=Qb4ruik8Sirxl`6r3O2{@Xs<)(bVf} z%075-{?S#<-J93(t!q;F!Tjjeqa`ntRO_aTL>;L(UdaEx_WkL*{+#TscV132eX30yO*BWJ}6?BsJNu+T(pEix89C_&-{z#sg3`l7o?wk z8~s^kIlsfKs;PSz`S=mWZh6vq1p@;EXMsm#F$061 zG6*wPEVVCVU|?V`@$_|Nf6ghyuV?nZWO+FQ1A}CVYeb22er|4RUI~M9QEFmIYKlU6 zW=V#EyQgnJcq5-U0|Pt1r;B4q#jUq@H}W1<5OBCCV925RxFV$A>E$Ft4P$02rPI&$ z-ZHsfGq=a()#6%)gx2+f3<_Ed9b62Hm>3o@HLQU0zyb{`7~lf4PX)(cFOrZv5Vo%F zRtUq6Mwm+dY0B-(|J`Hwz%kJ}(oB?LnxH6y3oAn)qeBRTLkNQalm`(I5QPgMOT*M7 zNyF8f_@Pb17mUimFg*S3FhJU zxmpZ&V3E}zetP2J;QD-qik1^|b!KxhoQBmB3R>_=1i8+@B2CC@SQVt8#qh_Ia*x>O YWJ*4Y>Dpbuz`(%Z>FVdQ&MBb@0Oz#;`2YX_ literal 0 HcmV?d00001 diff --git a/data/logo.png b/data/logo.png new file mode 100755 index 0000000000000000000000000000000000000000..ae1f7fb7f327034066df9479d990e6576bfb42f3 GIT binary patch literal 65973 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%0A$s1zO-~ED$4RnpxlP* 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 YI4EeN2uLR}0000e%d5-P$iPDW58Tx#%m4rY 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()