You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
4.2 KiB
118 lines
4.2 KiB
3 years ago
|
import random
|
||
|
import tkinter as tk
|
||
|
|
||
|
class Machine_a_sous:
|
||
|
def __init__(self):
|
||
3 years ago
|
self.argent = int(input("Saississez votre somme de départ: "))
|
||
3 years ago
|
self.nombres = []
|
||
|
self.bank = 1000
|
||
|
self.mise = -1
|
||
|
self.gains = 0
|
||
|
|
||
|
def saisie(self):
|
||
|
"""demande à l'utilisateur une mise"""
|
||
3 years ago
|
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()
|
||
3 years ago
|
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 rouleaux : {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'
|
||
3 years ago
|
|
||
3 years ago
|
self.fen = tk.Tk()
|
||
3 years ago
|
self.fen.geometry('1350x900')
|
||
3 years ago
|
self.fen.title('Bellagio')
|
||
|
self.fen.config(background=self.bg_color)
|
||
3 years ago
|
|
||
|
self.bank = tk.Label(self.fen, background=self.bg_color, text=self.machine.bank, padx=190, font=('Helvetica', 36, 'bold'))
|
||
|
self.bank.grid(column=1, row=1)
|
||
|
|
||
|
self.argent = tk.Label(self.fen, background=self.bg_color, text=self.machine.argent, padx=220, font=('Helvetica', 36, 'bold'))
|
||
|
self.argent.grid(column=5, row=1)
|
||
|
|
||
|
self.mise = tk.Label(self.fen, background=self.bg_color, text=0, font=('Helvetica', 36, 'bold'))
|
||
|
self.mise.grid(column=3, row=1)
|
||
|
|
||
|
self.entry_mise = tk.Entry(self.fen, width=50)
|
||
|
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)]
|
||
3 years ago
|
for i in range(3):
|
||
3 years ago
|
self.rouleaus[i].grid(column=i+2, row=2)
|
||
|
|
||
3 years ago
|
self.fen.bind('<Return>', self.game)
|
||
|
self.fen.mainloop()
|
||
|
|
||
|
def game(self, event):
|
||
|
regles()
|
||
3 years ago
|
self.machine.mise = int(self.entry_mise.get())
|
||
|
while self.machine.saisie() == False:
|
||
|
self.game()
|
||
|
self.machine.nbAlea()
|
||
|
self.machine.gain()
|
||
|
self.maj_graph()
|
||
|
if self.machine.bank <= 500:
|
||
|
self.fen.destroy()
|
||
3 years ago
|
|
||
|
def maj_graph(self):
|
||
|
for rouleau in range(3):
|
||
|
self.rouleaus[rouleau].config(text=self.machine.nombres[rouleau])
|
||
3 years ago
|
self.mise.config(text=self.machine.mise)
|
||
|
self.bank.config(text=self.machine.bank)
|
||
|
self.argent.config(text=self.machine.argent)
|
||
|
|
||
3 years ago
|
|
||
|
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.")
|
||
|
|
||
|
|
||
|
# def game():
|
||
|
# regles()
|
||
|
# machine = Machine_a_sous()
|
||
|
# while machine.bank >= 500 and machine.mise != 0:
|
||
|
# machine.saisie()
|
||
|
# machine.nbAlea()
|
||
|
# machine.gain()
|
||
|
# machine.affiche()
|
||
|
|
||
|
|
||
|
gui = Gui()
|
||
|
|
||
|
game()
|
||
|
gui.maj_graph()
|
||
|
|
||
|
|