Program Symulator Mini Lotto

ODPOWIEDZ
UWAGA
Twój limit przeglądania postów to 5 aby zobaczyć więcej musisz zalogować się.
Barek43
Świeżak
Posty: 26
Rejestracja: 16 wrz 2024, 6:45
Kontakt:

Program Symulator Mini Lotto

Post autor: Barek43 » 30 wrz 2024, 7:07

WItam to mój kolejny program napisany z nudów tym razem symulator mini lotto. Działanie programu jest niemal identyczne z prawdziwą grą pod względem szans na wygraną jak i obliczaniu potencjalnych zysków ,program wylicza wygrane. nie liczy kosztów żeby nie psuć zabawy.

Obrazek
Obrazek
Obrazek

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()

Awatar użytkownika
pablovsky
Uzależniony od gry
Posty: 915
Rejestracja: 13 lut 2024, 1:19
Kontakt:

Re: Program Symulator Mini Lotto

Post autor: pablovsky » 30 wrz 2024, 11:24

Świetna robota, kolego, z pewnością wielu skorzysta. 💪👍

lotto123
Janusz kombinator
Posty: 144
Rejestracja: 21 lis 2022, 19:14
Kontakt:

Re: Program Symulator Mini Lotto

Post autor: lotto123 » 30 wrz 2024, 14:03

Brawo. Super program .

Awatar użytkownika
Zefirek
Lubi chajc
Posty: 413
Rejestracja: 12 lip 2022, 14:53
Lokalizacja: Kraków
Kontakt:

Re: Program Symulator Mini Lotto

Post autor: Zefirek » 30 wrz 2024, 16:05

Nie mogę go otworzyć,bo antywirus usuwa go jako niebezpieczny :?:
Krakuska - świruska :D

Barek43
Świeżak
Posty: 26
Rejestracja: 16 wrz 2024, 6:45
Kontakt:

Re: Program Symulator Mini Lotto

Post autor: Barek43 » 30 wrz 2024, 17:04

Zefirek pisze:
30 wrz 2024, 16:05
Nie mogę go otworzyć,bo antywirus usuwa go jako niebezpieczny :?:
Są 4 antywirusy co wykrywają tam jakiegoś wirusa ale proggram jest czysty a te AV pokazują false positive
https://www.virustotal.com/gui/file/5fb3adb177e4d2ec30f99611262c75c3c82f67312eeb084e07d24936d229bbb4?nocache=1

możesz dodać do wyjątków i wtedy powinno działać ,przy czym ja to testowałem tylko na Win 10 i na Ubuntu nie wiem jak z resztą systemów szczególnie tych starszych WIn7 itd.

Barek43
Świeżak
Posty: 26
Rejestracja: 16 wrz 2024, 6:45
Kontakt:

Re: Program Symulator Mini Lotto

Post autor: Barek43 » 01 paź 2024, 11:36

BTW
jak coś to zrobiłem też strone internetową co ma identyczną funkcjonalność jak ten program więc jak komuś nie działa program to może sobie zajrzeć na strone i sie pobawić
http://mitolotto.cba.pl/

Dodano po 2 minutach 34 sekundach:
narazie strona jest na darmowym hostingu i z racji tego przy pierwszym wejściu trzeba kliknąć na stronie informacyjnej kontynuuj.

System
Maniak
Posty: 646
Rejestracja: 19 kwie 2024, 9:41
Kontakt:

Re: Program Symulator Mini Lotto

Post autor: System » 03 paź 2024, 12:37

Wybrałem 7 zestawów liczb i regularnie wchodzą trójki a raz na jakiś czas czwóreczka...

Spróbował by zagrać ale brak środków i stawka za zakład poszła do góry to tym bardziej.

ralfek
Cwaniak
Posty: 267
Rejestracja: 10 wrz 2018, 13:37
Kontakt:

Re: Program Symulator Mini Lotto

Post autor: ralfek » 03 paź 2024, 13:04

to, ze wchodzilo, nie znaczy ze wjedzie, historycznie to kazdy sobei moze znalezc, na przyszlosc - nikt nie umie
Wyniki Lotto oraz narzędzia ułatwiające grę - od 2009 roku, Obrazek Obrazek

System
Maniak
Posty: 646
Rejestracja: 19 kwie 2024, 9:41
Kontakt:

Re: Program Symulator Mini Lotto

Post autor: System » 03 paź 2024, 13:08

No ale ja już 6 razy sprawdzałem i za każdym razem mniej więcej tak samo wchodzi.

Dodano po 1 godzinie 7 minutach 47 sekundach:
Powiększyłem ilość wytypowanych zestawów do dziesięciu i zaczyna częściej coś wchodzić w generatorze.

Barek43
Świeżak
Posty: 26
Rejestracja: 16 wrz 2024, 6:45
Kontakt:

Re: Program Symulator Mini Lotto

Post autor: Barek43 » 03 paź 2024, 15:03

Dodałem do symulatora opcje grania w Duzego Lotka , aktualne wyniki losowań TS i poprawiłem troche szate graficzną
Obrazek

link
http://mitolotto.cba.pl/

ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości