Mastermind
Professeur référent :
M FAURY (ISN)
Avec mon collègue, nous avons, après une longue réflexion, décidé de réaliser un Mastermind, un projet issu des jeux de notre enfance.
Programme
from tkinter import *
class Application(Tk):
def __init__(self):
Tk.__init__(self)
self.createWidgets()
self.title("lolo&deckerfamily productionofgame")
self.accueil()
# self.creation_fenetre2
self.canvas.grid()
self.abandonner
self.demonstration
self.quitButton = Button(self, text='QUITTER',command=self.destroy) # Use destroy instead of quit
self.quitButton.grid(row=0, column=3, sticky="nsew")
def createWidgets(self):
#taille de fenetre
self.minsize(1100,500)
#creation d'un cadre
cadre = Frame(self)
cadre.grid()
#titre sur la page
titre = Label(cadre,text="MASTERMIND")
titre.grid(row=3, column=1, columnspan=1)
#couleur de texte
titre.configure(fg = 'red')
#label
label = Label(cadre, text="FIND THE RIGHT COMBINATION ", bg="blue")
label.configure(fg = 'red')
label.grid()
#forme du jeu
self.canvas = Canvas(self, width=1000, height=700, background='black')
##tentative pour créer une fenetre d'alerte indiquant la perte du jeu en cours en cas de fuite.
# def creation_fenetre2(self):
# fenetre2=Tk()
# titre1=Label(fenetre2, text = "ATTENTION:")
# titre1.grid()
# fenetre1.title("etes vous sur de vouloir partir? toutes progression sera perdu!")
#
def jeu(self):
self.canvas.delete('all')
n = 10
m = 4
r = 60
y0 = -61
i = 1
j = 0
for j in range (n):
y0 += 70
j += 1
x0 = 11
for i in range (m):
x0 += 70
self.canvas.create_oval(x0, y0, x0+r, y0+r,fill='white')
i += 1
r = 20
y0 = -61
i = 1
j = 0
for j in range (n):
y0 += 70
j += 1
x0 = m*70+70
for i in range (m):
x0 += 20
self.canvas.create_oval(x0, y0, x0+r, y0+r, fill='white')
i += 1
self.canvas.create_oval(580-15, 26-15, 580+15, 26+15, fill='red')
self.canvas.create_oval(580-15, 79-15, 580+15, 79+15, fill='yellow')
self.canvas.create_oval(580-15, 133-15, 580+15, 133+15, fill='blue')
self.canvas.create_oval(580-15, 186-15, 580+15, 186+15, fill='orange')
self.canvas.create_oval(580-15, 240-15, 580+15, 240+15, fill='green')
self.canvas.create_oval(580-15, 293-15, 580+15, 293+15, fill='turquoise')
self.canvas.create_oval(580-15, 347-15, 580+15, 347+15, fill='violet')
self.canvas.create_oval(580-15, 401-15, 580+15, 401+15, fill='grey')
btn_rules= Button(self.canvas, text='retour', command=self.rules)
btn_rules_window = self.canvas.create_window(780,100, anchor=NW, window=btn_rules)
btn_abandon= Button(self.canvas, text='abandonner', command=self.abandonner)
btn_abandon_window = self.canvas.create_window(780,130, anchor=NW, window=btn_abandon)
# btn_avt= Button(self.canvas, text= "return", command=self.creation_fenetre2)
# btn_avt_window = self.canvas.create_window(800,200, anchor=NW, window=btn_avt)
# self.canvas.bind("<Button-1>",self.creation_fenetre)
self.canvas.create_rectangle(870,10,970,630,outline='blue', fill='red')
self.canvas.create_text(920,50, text= 'M', font='Arial 50', fill='blue')
self.canvas.create_text(920,110, text= 'A', font='Arial 50', fill='blue')
self.canvas.create_text(920,170, text= 'S', font='Arial 50', fill='blue')
self.canvas.create_text(920,230, text= 'T', font='Arial 50', fill='blue')
self.canvas.create_text(930,290, text= 'E ', font='Arial 50', fill='blue')
self.canvas.create_text(930,350, text= 'R ', font='Arial 50', fill='blue')
self.canvas.create_text(930,410, text= 'M ', font='Arial 50', fill='blue')
self.canvas.create_text(930,470, text= 'I ', font='Arial 50', fill='blue')
self.canvas.create_text(930,530, text= 'N ', font='Arial 50', fill='blue')
self.canvas.create_text(930,590, text= 'D ', font='Arial 50', fill='blue')
def accueil(self):
#ACCUEIL
self.canvas.delete('all')
self.canvas.create_text(500,60, text='Mastermind', font='arial 70', fill='red')
self.canvas.create_rectangle(250,195,750,285,outline='blue', fill='red')
self.canvas.create_text(500,245, text= 'JOUER', font='Arial 30', fill='blue')
self.canvas.create_text(500,400, text='BON COURAGE', font='arial 70', fill='red')
btn_rules= Button(self.canvas, text='JOUER', command=self.rules)
btn_rules_window = self.canvas.create_window(700,230, anchor=NW, window=btn_rules)
self.canvas.bind("<Button-1>",self.rules)
def rules(self):
#regles
self.canvas.delete('all')
self.canvas.create_text(500,40, text='Règles', font='arial 60', fill='red')
self.canvas.create_rectangle(250,100,750,635,outline='blue', fill='red')
self.canvas.create_text(500,130, text= 'Le but du jeu est simple.', font='Arial 30', fill='blue')
self.canvas.create_text(500,200, text= 'Trouver les bonnes couleurs', font='Arial 30', fill='blue')
self.canvas.create_text(500,250, text= 'et leur ordre', font='Arial 30', fill='blue')
self.canvas.create_text(500,320, text= "L'ordinateur définira la suite", font='Arial 30', fill='blue')
self.canvas.create_text(500,420, text= 'tu as 10 essais ', font='Arial 30', fill='blue')
self.canvas.create_text(500,470, text= 'et 8 choix de couleurs ', font='Arial 30', fill='blue')
self.canvas.create_text(500,580, text= 'Good luck! ', font='Arial 30', fill='blue')
btn_demonstration= Button(self.canvas, text='EXPLICATION ', command=self.demonstration)
btn_jeu_window = self.canvas.create_window(650,580, anchor=NW, window=btn_demonstration)
self.canvas.bind("<Button-1>",self.demonstration)
def demonstration(self):
#explication du jeu
self.canvas.delete('all')
self.canvas.create_text(500,40, text='EXPLICATION', font='arial 60', fill='red')
self.canvas.create_rectangle(250,100,750,635,outline='blue', fill='red')
self.canvas.create_text(500,130, text= 'Les 8 couleurs sont:', font='Arial 30', fill='blue')
self.canvas.create_oval(360-15, 170-15, 360+15, 170+15, fill='red')
self.canvas.create_oval(400-15, 170-15, 400+15, 170+15, fill='yellow')
self.canvas.create_oval(440-15, 170-15, 440+15, 170+15, fill='blue')
self.canvas.create_oval(480-15, 170-15, 480+15, 170+15, fill='orange')
self.canvas.create_oval(520-15, 170-15, 520+15, 170+15, fill='green')
self.canvas.create_oval(560-15, 170-15, 560+15, 170+15, fill='turquoise')
self.canvas.create_oval(600-15, 170-15, 600+15, 170+15, fill='violet')
self.canvas.create_oval(640-15, 170-15, 640+15, 170+15, fill='grey')
self.canvas.create_text(500,250, text= 'lorsque la couleur est bonne:', font='Arial 30', fill='blue')
self.canvas.create_text(500,300, text= '- et mal placée', font='Arial 30', fill='blue')
self.canvas.create_oval(360-15, 350-15, 360+15, 350+15, fill='black')
self.canvas.create_oval(400-15, 350-15, 400+15, 350+15, fill='white')
self.canvas.create_oval(440-15, 350-15, 440+15, 350+15, fill='white')
self.canvas.create_oval(480-15, 350-15, 480+15, 350+15, fill='white')
self.canvas.create_text(500,400, text= '-et bien placée ', font='Arial 30', fill='blue')
self.canvas.create_oval(360-15, 450-15, 360+15, 450+15, fill='blue')
self.canvas.create_oval(400-15, 450-15, 400+15, 450+15, fill='white')
self.canvas.create_oval(440-15, 450-15, 440+15, 450+15, fill='white')
self.canvas.create_oval(480-15, 450-15, 480+15, 450+15, fill='white')
self.canvas.create_text(500,530, text= "N'oublis pas, tu as", font='Arial 30', fill='blue')
self.canvas.create_text(500,580, text= 'seulement 10 essais!! ', font='Arial 30', fill='blue')
btn_jeu= Button(self.canvas, text='go play ', command=self.jeu)
btn_jeu_window = self.canvas.create_window(670,600, anchor=NW, window=btn_jeu)
self.canvas.bind("<Button-1>",self.jeu)
def abandonner(self):
#quand tu as perdus
self.canvas.delete('all')
self.canvas.create_text(500,60, text='TU AS PERDU!', font='arial 70', fill='red')
self.canvas.create_rectangle(110,155,890,235,outline='blue', fill='red')
self.canvas.create_text(500,195, text= 'appuie sur le bouton quitter pour quitter', font='Arial 30', fill='blue')
self.canvas.create_rectangle(110,255,890,335,outline='blue', fill='red')
self.canvas.create_text(500,295, text= 'appuie sur le bouton ci dessous pour rejouer', font='Arial 30', fill='blue')
self.canvas.create_text(500,500, text='REESSAYES', font='arial 70', fill='red')
btn_rejouer= Button(self.canvas, text='REJOUER', command=self.accueil)
btn_rejouer_window = self.canvas.create_window(500,360, anchor=NW, window=btn_rejouer)
app = Application()
app.mainloop()
