|
|
@ -3,6 +3,7 @@ import tkinter as tk |
|
|
|
from tkinter import messagebox |
|
|
|
|
|
|
|
class Machine_a_sous: |
|
|
|
"""classe principale gérant le casino""" |
|
|
|
def __init__(self): |
|
|
|
self.argent = 0 |
|
|
|
self.nombres = [] |
|
|
@ -13,14 +14,19 @@ class Machine_a_sous: |
|
|
|
def saisie(self): |
|
|
|
"""demande à l'utilisateur une mise""" |
|
|
|
print('saisie') |
|
|
|
if not 100 > self.mise >= 0 or not self.mise <= self.argent: # tant que mise n'est pas compris entre 0-100 et > mise |
|
|
|
return False |
|
|
|
if self.mise > self.argent or self.mise == 0: |
|
|
|
return "quit" |
|
|
|
else: |
|
|
|
self.bank += self.mise |
|
|
|
self.argent -= self.mise |
|
|
|
return self.mise |
|
|
|
try: |
|
|
|
machine.mise = int(machine.mise) |
|
|
|
if not 100 > self.mise >= 0 or not self.mise <= self.argent: # tant que mise n'est pas compris entre 0-100 et > mise |
|
|
|
return False |
|
|
|
if self.mise > self.argent or self.mise == 0: |
|
|
|
return "quit" |
|
|
|
else: |
|
|
|
self.bank += self.mise |
|
|
|
self.argent -= self.mise |
|
|
|
return self.mise |
|
|
|
except: |
|
|
|
if machine.mise == "stop": |
|
|
|
return "quit" |
|
|
|
|
|
|
|
def nbAlea(self): |
|
|
|
"""renvoie une liste de 3 nombre aléatoires entre 0 et 9""" |
|
|
@ -28,6 +34,7 @@ class Machine_a_sous: |
|
|
|
return self.nombres |
|
|
|
|
|
|
|
def gain(self): |
|
|
|
"""Mets à jour les gains de l'utilisateurs""" |
|
|
|
print('hello') |
|
|
|
print(self.mise, self.argent, self.bank) |
|
|
|
print(self.nombres) |
|
|
@ -48,12 +55,14 @@ class Machine_a_sous: |
|
|
|
return self.gains |
|
|
|
|
|
|
|
def affiche(self): |
|
|
|
"""affiche les trois rouleaux""" |
|
|
|
print(f"premier rouleau : {self.nombres[0]},deuxième rouleaux : {self.nombres[1]},troisième rouleaux {self.nombres[2]}") |
|
|
|
print(f"Vous avez gagné {self.gains} jetons") |
|
|
|
print(f"\nIl vous reste {self.argent} jetons, et il reste {self.bank} jetons dans le bac de la machine.\n") |
|
|
|
|
|
|
|
|
|
|
|
class Game_gui: |
|
|
|
"""Interface graphique du casino""" |
|
|
|
def __init__(self): |
|
|
|
self.bg_color = '#777777' |
|
|
|
self.fen = tk.Tk() |
|
|
@ -85,10 +94,12 @@ class Game_gui: |
|
|
|
self.fen.mainloop() |
|
|
|
|
|
|
|
def play(self, event): |
|
|
|
machine.mise = int(self.entry_mise.get()) |
|
|
|
"""méthode qui gère le fonctionnement du jeu grace à la classe Machine_à_sous""" |
|
|
|
machine.mise = self.entry_mise.get() |
|
|
|
mise_state = machine.saisie() |
|
|
|
if mise_state == "quit": |
|
|
|
self.fen.quit() |
|
|
|
self.fen.destroy() |
|
|
|
elif mise_state != False: |
|
|
|
machine.nbAlea() |
|
|
|
machine.gain() |
|
|
@ -99,6 +110,7 @@ class Game_gui: |
|
|
|
self.fen.destroy() |
|
|
|
|
|
|
|
def maj_graph(self): |
|
|
|
"""Rafraîchi l'affichage des infos et rouleaux""" |
|
|
|
for rouleau in range(3): |
|
|
|
self.rouleaus[rouleau].config(text=machine.nombres[rouleau]) |
|
|
|
for i in range(len(self.info)): |
|
|
@ -106,6 +118,7 @@ class Game_gui: |
|
|
|
|
|
|
|
|
|
|
|
class Menu_gui: |
|
|
|
"""Interface graphique du menu (règles et argent)""" |
|
|
|
def __init__(self): |
|
|
|
self.fen = tk.Tk() |
|
|
|
self.bg_color = '#777777' |
|
|
@ -128,12 +141,39 @@ class Menu_gui: |
|
|
|
self.fen.mainloop() |
|
|
|
|
|
|
|
def get_argent(self, event): |
|
|
|
"""récupère l'argent saisie par l'utilisateur""" |
|
|
|
machine.argent = int(self.entry_mise.get()) |
|
|
|
self.fen.destroy() |
|
|
|
|
|
|
|
class Fin_gui: |
|
|
|
"""Interface du menue de fin""" |
|
|
|
def __init__(self): |
|
|
|
self.fen = tk.Tk() |
|
|
|
self.bg_color = '#777777' |
|
|
|
self.fen.geometry('900x600') |
|
|
|
self.fen.title('Bellagio') |
|
|
|
self.fen.config(background=self.bg_color) |
|
|
|
|
|
|
|
self.name_frame = ['banque', 'mise', 'argent'] |
|
|
|
self.frame = [tk.LabelFrame(self.fen, background=self.bg_color, labelanchor='n', text=i) for i in self.name_frame] |
|
|
|
self.name_info = [machine.bank, 0, machine.argent] |
|
|
|
self.info = [tk.Label(self.frame[i], background=self.bg_color, text=self.name_info[i], width=8, font=('Helvetica', 36, 'bold')) for i in range(3)] |
|
|
|
self.column = [1, 2, 5] |
|
|
|
|
|
|
|
for i in range(3): |
|
|
|
if i != 1: |
|
|
|
self.frame[i].grid(column=self.column[i], row=1, padx=24) |
|
|
|
else: |
|
|
|
self.frame[i].grid(columnspan=3, column=self.column[i], row=1) |
|
|
|
self.info[i].grid() |
|
|
|
|
|
|
|
self.quit = tk.Button(self.fen, width=40, text ="Quitter", command = self.fen.destroy) |
|
|
|
self.quit.grid(columnspan=3, column=2, row=3) |
|
|
|
|
|
|
|
self.fen.mainloop() |
|
|
|
|
|
|
|
class Fdj: |
|
|
|
# Test pour savoir si le joueur à le droit de rentrer dans le casino |
|
|
|
"""Test pour savoir si le joueur est majeur et à le droit de rentrer dans le casino""" |
|
|
|
def __init__(self): |
|
|
|
|
|
|
|
self.est_majeur = False |
|
|
@ -155,6 +195,7 @@ class Fdj: |
|
|
|
self.fen.mainloop() |
|
|
|
|
|
|
|
def get_rep(self, event): |
|
|
|
"""indique si le joueur est majeur""" |
|
|
|
# indique si le joueur est majeur |
|
|
|
if self.entry.get() == "oui": |
|
|
|
self.est_majeur = True |
|
|
@ -172,6 +213,8 @@ def regles(): |
|
|
|
|
|
|
|
fdj = Fdj() |
|
|
|
if fdj.est_majeur: |
|
|
|
"""Lance toutes les classes""" |
|
|
|
machine = Machine_a_sous() |
|
|
|
menu = Menu_gui() |
|
|
|
gui = Game_gui() |
|
|
|
gui = Game_gui() |
|
|
|
fin = Fin_gui() |