


link
http://www.mediafire.com/file/i9zc6vg4ydjscc6/symulator_multilotto.zip
skan AV
https://www.virustotal.com/gui/file-analysis/Mzc1OGFlYzc3NTUxZjVkNjEzNTY0YmIwZTAzMDllZmU6MTcyNzY3MjQ3OA==
Pod spodem kod programu jak kto chciałby sobie modyfikowac do innych gier.
import random
import tkinter as tk
from tkinter import messagebox, scrolledtext
from tkinter import ttk
from PIL import Image, ImageTk
def losuj_kule(liczba_kul, max_numer):
kule = random.sample(range(1, max_numer + 1), liczba_kul)
return kule
def zatwierdz_wprowadzenie():
wyswietl_kule()
def wyswietl_kule():
liczba_kul = 5
max_numer = 42
wylosowane_kule = losuj_kule(liczba_kul, max_numer)
for widget in frame.kule_frame.winfo_children():
widget.destroy()
pokaz_kule(wylosowane_kule)
def pokaz_kule(wylosowane_kule, index=0):
if index < len(wylosowane_kule):
numer = wylosowane_kule[index]
kula_frame = tk.Frame(frame.kule_frame, bg='blue')
kula_frame.pack(side=tk.LEFT, padx=5, pady=5)
kula = tk.Canvas(kula_frame, width=50, height=50, bg='blue', highlightthickness=0)
kula.create_oval(5, 5, 45, 45, fill='yellow')
kula.pack()
kula.create_text(25, 25, text=str(numer), font=('Arial', 14, 'bold'))
frame.after(1000, lambda: pokaz_kule(wylosowane_kule, index + 1))
else:
sprawdz_trafienia(wylosowane_kule)
def sprawdz_trafienia(wylosowane_kule):
input_text = text_zaklady.get("1.0", tk.END).strip()
trafione_zaklady = []
liczba_zakladow = 0
liczba_trojek = 0
liczba_czworek = 0
liczba_piatek = 0
zyski_text = ""
for line in input_text.splitlines():
zaklad = set()
for num_str in line.split(','):
try:
num = int(num_str.strip())
if 1 <= num <= 42:
zaklad.add(num)
except ValueError:
continue
if zaklad:
liczba_zakladow += 1
trafienia = set(wylosowane_kule) & zaklad
liczba_trafien = len(trafienia)
if liczba_trafien == 5:
liczba_piatek += 1
zysk = 300000
elif liczba_trafien == 4:
liczba_czworek += 1
zysk = 1200
elif liczba_trafien == 3:
liczba_trojek += 1
zysk = 50
else:
zysk = 0
if zysk > 0:
trafione_zaklady.append((zaklad, trafienia, zysk))
# Sortowanie trafionych zakładów według zysku (od największego do najmniejszego)
trafione_zaklady.sort(key=lambda x: x[2], reverse=True)
wiadomosc = (f"Wylosowane kule: {wylosowane_kule}\n"
f"Ilość zakładów zawartych: {liczba_zakladow}\n"
f"Ilość trafionych zakładów: {len(trafione_zaklady)}\n"
f"Trafione trojki: {liczba_trojek}\n"
f"Trafione czwórki: {liczba_czworek}\n"
f"Trafione piątki: {liczba_piatek}\n")
if trafione_zaklady:
for zaklad, trafienia, zysk in trafione_zaklady:
zyski_text += (f"Zakład: {','.join(map(str, sorted(zaklad)))}, "
f"Trafione: {','.join(map(str, sorted(trafienia)))}, "
f"Zysk: {zysk}\n")
wiadomosc += "Gratulacje! Trafiłeś w następujące zakłady:\n" + zyski_text
suma_zyskow = sum(zysk for _, _, zysk in trafione_zaklady)
wiadomosc += f"Suma zysków: {suma_zyskow}\n"
else:
wiadomosc += "Niestety, nie trafiłeś żadnego zakładu."
pokaz_wynik(wiadomosc)
zaktualizuj_zyski(zyski_text)
def zaktualizuj_zyski(zyski_text):
zyski_text_box.config(state=tk.NORMAL)
zyski_text_box.delete("1.0", tk.END)
zyski_text_box.insert(tk.END, zyski_text)
zyski_text_box.config(state=tk.DISABLED)
def pokaz_wynik(wiadomosc):
dialog = tk.Toplevel(root)
dialog.title("Wynik")
dialog.configure(bg='blue')
text_box = scrolledtext.ScrolledText(dialog, wrap=tk.WORD, width=50, height=20, bg='lightyellow')
text_box.pack(padx=10, pady=10)
text_box.insert(tk.INSERT, wiadomosc)
text_box.config(state=tk.DISABLED)
def generuj_liczby():
liczba_zakladow = int(entry_ilosc_zakladow.get())
if liczba_zakladow <= 0:
messagebox.showerror("Błąd", "Ilość zakładów musi być większa niż 0.")
return
liczby = []
for _ in range(liczba_zakladow):
kule = losuj_kule(5, 42)
liczby.append(','.join(map(str, sorted(kule))))
messagebox.showinfo("Wylosowane liczby", f"Wylosowano {liczba_zakladow} zakładów.\n"
"Zakłady skopiowano do zakładki Losowanie.")
text_zaklady.delete("1.0", tk.END)
text_zaklady.insert(tk.END, "\n".join(liczby) + "\n")
# Inicjalizacja okna
root = tk.Tk()
root.title("Symulator MiniLotto")
root.configure(bg='blue')
# Notebook (zakładki)
notebook = ttk.Notebook(root)
notebook.pack(pady=20)
# Zakładka Główna
frame = tk.Frame(notebook, bg='blue')
notebook.add(frame, text='Losowanie')
# Ramka do wprowadzania zakładów
tk.Label(frame, text="Wprowadź swoje zakłady:", bg='blue', fg='yellow', font=('Arial', 15)).pack(pady=3)
text_zaklady = tk.Text(frame, width=30, height=5)
text_zaklady.pack(pady=5)
button_zatwierdz = tk.Button(frame, text="Zatwierdź Zakłady", command=zatwierdz_wprowadzenie)
button_zatwierdz.pack(pady=10)
# Dodanie obrazka
try:
obrazek = Image.open("obrazek.png")
obrazek = obrazek.resize((310, 250), Image.LANCZOS)
obrazek_tk = ImageTk.PhotoImage(obrazek)
label_obrazek = tk.Label(frame, image=obrazek_tk, bg='blue')
label_obrazek.pack(pady=10)
except Exception as e:
print(f"Błąd podczas wczytywania obrazka: {e}")
# Ramka do rysowania kul
frame.kule_frame = tk.Frame(frame, bg='blue')
frame.kule_frame.pack(pady=10)
# Zakładka Generator
frame_generator = tk.Frame(notebook, bg='blue')
notebook.add(frame_generator, text='Generator')
tk.Label(frame_generator, text="Ilość zakładów:", bg='blue', fg='yellow', font=('Arial', 15)).pack(pady=3)
entry_ilosc_zakladow = tk.Entry(frame_generator, width=5)
entry_ilosc_zakladow.pack(pady=5)
button_generuj = tk.Button(frame_generator, text="Wylosuj liczby", command=generuj_liczby)
button_generuj.pack(pady=20)
# Zakładka Zyski
frame_zyski = tk.Frame(notebook, bg='blue')
notebook.add(frame_zyski, text='Zyski')
# Ustawienia dla zakładki Zyski
info_zyski = tk.Label(frame_zyski, text="Twoje zyski", bg='blue', fg='yellow', font=('Arial', 15))
info_zyski.pack(pady=20)
# Dodanie Text widget do zakładki Zyski
zyski_text_box = scrolledtext.ScrolledText(frame_zyski, wrap=tk.WORD, width=35, height=27, bg='lightyellow')
zyski_text_box.pack(padx=10, pady=10)
zyski_text_box.config(state=tk.DISABLED)
# Uruchomienie głównej pętli
root.mainloop()