import random import tkinter as tk class Machine_a_sous: def __init__(self): self.argent = int(input("Saississez votre somme de départ: ")) self.nombres = [] self.bank = 1000 self.mise = -1 self.gains = 0 def saisie(self): """demande à l'utilisateur une 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 elif self.mise == 0: quit() self.bank += self.mise self.argent -= self.mise return self.mise def nbAlea(self): """renvoie une liste de 3 nombre aléatoires entre 0 et 9""" self.nombres = [random.randint(0,9) for i in range(3)] return self.nombres def gain(self): if len(set(self.nombres)) == 1 and 9 in self.nombres: self.gains = self.bank + self.mise self.argent += self.gains self.bank = 0 elif len(set(self.nombres)) == 1: self.gains = self.mise * 6 self.argent += self.gains self.bank -= self.gains elif len(set(self.nombres)) == 2: self.gains = self.mise * 3 self.argent += self.gains self.bank -= self.gains else: self.gains = 0 return self.gains def affiche(self): 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 Gui: def __init__(self): self.machine = Machine_a_sous() self.bg_color = '#777777' self.fen = tk.Tk() self.fen.geometry('1350x900') 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 = [self.machine.bank, 0, self.machine.argent] self.info = [tk.Label(self.frame[i], background=self.bg_color, text=self.name_info[i], width=15, 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=12) else: self.frame[i].grid(columnspan=3, column=self.column[i], row=1) self.info[i].grid() self.entry_mise = tk.Entry(self.fen, width=50) self.entry_mise.insert(0, 'Entrez votre mise entre 0 et 100') self.entry_mise.grid(columnspan=3, column=2, row=3) self.rouleaus = [tk.Label(self.fen, padx=65, pady=300, text=0, background=self.bg_color, fg='#db0000', font=('Helvetica', 36, 'bold')) for i in range(3)] for i in range(3): self.rouleaus[i].grid(column=i+2, row=2) self.fen.bind('', self.game) self.fen.mainloop() def game(self, event): regles() self.machine.mise = int(self.entry_mise.get()) while self.machine.saisie() == False: self.game() self.machine.nbAlea() self.machine.gain() self.name_info = [self.machine.bank, self.machine.m, self.machine.argent] self.maj_graph() if self.machine.bank <= 500: self.fen.destroy() def maj_graph(self): for rouleau in range(3): self.rouleaus[rouleau].config(text=self.machine.nombres[rouleau]) for i in range(len(self.info)): self.info[i].config(text=self.name_info[i]) class Menu_gui: def __init__(self): self.bg_color = '#777777' self.fen = tk.Tk() self.fen.geometry('900x600') self.fen.title('Bellagio') self.fen.config(background=self.bg_color) self.pres = tk.Label(self.fen, text='Bienvenue au casino', font=('Helvetica', 36, 'bold'), background=self.bg_color) self.pres.pack() self.regle = tk.Label(self.fen, text=regles(), font=('Helvetica', 16, 'bold'), background=self.bg_color) self.regle.pack() self.fen.mainloop() def regles(): print("Bienvenue dans le jeu de la machine à sous.\nIl y a pars défault dans le bac de la machine 1000 jetons.\nSi les trois chiffres sont des 9, vous avez gagné le gros lot. Vous gagnez tout le bac de la machine.\nSi les trois chiffres sont identiques mais ne sont pas des 9, alors vous gagner 6 fois la mise que vous avez mis.\nSi les deux chiffres sont identiques, alors vous gagnez 3 fois la mise que vous avez mis.\nSi aucun chiffres ne sont identiques vous ne gagnez rien.") menu = Menu_gui() gui = Gui()