boyan1324

midji-bet

May 29th, 2025
482
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.62 KB | None | 0 0
  1. import random  # importirash random, za da izbirash sluchaini simvoli
  2. import time  # importirash time, za da polzvash zakasnenie (sleep)
  3.  
  4. elements = ("🍇", "🍒", "7️⃣", "🍋", "🍉", "🌶️", "🍑")  # Tupla s vsichki vazmozhni simvoli na slot mashinata
  5.  
  6. multipliers = {3: 2, 4: 5, 5: 10}  # Rechnik: pri 3 ednakvi simvola pechelish x2, pri 4 — x5, pri 5 — x10
  7.  
  8. log_file = "slot_machine_log.txt"  # Ime na faila, kudeto zapisvame vsichko, koeto se sluchva
  9.  
  10. name = input("Please enter your name: ").capitalize()  # Vuvezhdash ime i go pravi da zapochva s glavna bukva
  11.  
  12. while True:  # Povtaryash, dokato ne vuvedesh pravilno chislo
  13.     user_input = input("Please enter your money: ")  # Vuvezhdash kolko pari iskash da slozhish
  14.     try:  # Proverqvash dali e validno chislo
  15.         money = float(user_input)  # Prevrushtash vuvedenoto v chislo s plavashta zapetaq
  16.         if money <= 0:  # Ako e 0 ili po-malko kazvash che ne stava
  17.             print("Money must be greater than 0.")
  18.             continue  # Vrusta te v nachaloto
  19.         break  # Ako vsichko e okei izlizash ot cikula
  20.     except ValueError:  # Ako vuvedesh tekst ili neshto greshno
  21.         print("Invalid input. Please enter a valid number.")
  22.  
  23. attempt = 1  # Broish kolko opita si napravil
  24.  
  25. while True:  # Glaven cikul na igrata
  26.     print(f"\nAttempt #{attempt}")  # Pokazvash nomera na opita
  27.  
  28.     while True:  # Cikul za validaciq na zaloga
  29.         user_input = input("Please enter your bet: ")  # Vuvezhdash kolko iskash da zalozhish
  30.         try:
  31.             bet = float(user_input)  # Prevrushtash go v chislo
  32.             if bet <= 0:  # Ako e nula ili po-malko, ne stava
  33.                 print("Bet must be greater than 0.")
  34.                 continue
  35.             if bet > money:  # Ako e po-golyam ot tova koeto imash
  36.                 print("Your bet is too high!")
  37.                 continue
  38.             break  # Ako vsichko e okei produlzhavash
  39.         except ValueError:  # Ako vuvedesh tekst ili greshka
  40.             print("Invalid input. Please enter a valid number.")
  41.  
  42.     money -= bet  # Svalyash zaloga ot parite ti
  43.  
  44.     outcome_list = []  # Praven spisuk za rezultatite ot tozi spin
  45.     for _ in range(5):  # 5 simvola za edin spin
  46.         symbol = random.choice(elements)  # Izbira sluchaen simvol ot tuple-a elements
  47.         outcome_list.append(symbol)  # Dobavq go v spisuka
  48.  
  49.     for symbol in outcome_list:  # Pokazvash vsichki simvoli edin po edin
  50.         print(symbol, end="", flush=True)  # Pishe go bez nov red
  51.         time.sleep(0.5)  # Zakasnenie za efekt
  52.     print()  # Nov red sled vsichki simvoli
  53.  
  54.     counts = {}  # Rechnik za broene na simvolite
  55.     for symbol in outcome_list:  # MInavash prez vseki simvol
  56.         if symbol in counts:  # Ako veche e imalo takuv
  57.             counts[symbol] += 1  # Uvelichavash broikata
  58.         else:
  59.             counts[symbol] = 1  # Ako e nov, go dobavyash s 1
  60.  
  61.     max_count = max(counts.values())  # Vzimash nai-golyamata broika na povtarqsht se simvol
  62.     winnings = 0  # Po nachalo nqma pechalba
  63.  
  64.     if max_count >= 3:  # Ako ima 3 ili poveche ednakvi simvola
  65.         winnings = bet * multipliers[max_count]  # Presmyatash kolko pechelish
  66.         print(f"You won! You earned {winnings:.2f}")  # Kazvash che pechelish
  67.         money += winnings  # Dobavqsh pechalbata kum parite si
  68.     else:  # Ako nqma pechalba
  69.         print("No win this time. Try again!")
  70.  
  71.     print(f"{name}, your current balance is: {money:.2f}")  # Pokazvash kolko pari ostavat
  72.  
  73.     if money <= 0:  # Ako parite sa 0 ili po-malko
  74.         print(f"\n{name}, you're out of money! Game over.")  # Kazvash che svurshvat
  75.         exit()  # Spirash programata
  76.  
  77.     try:
  78.         with open(log_file, "a", encoding='utf-8') as f:  # Otvash faila za dopulvane ("a") encodinga ti e za da ne vdiga greshka
  79.             outcome_str = ''.join(outcome_list)  # Prevrushtash spisuka v edin string
  80.             f.write(f"{name} | Bet: {bet:.2f} | Outcome: {outcome_str} | "
  81.                     f"Winnings: {winnings:.2f} | Balance: {money:.2f}\n")  # Zapisvash vsichko vuv faila
  82.     except Exception as e:  # Ako stane greshka pri zapis
  83.         print(f"Error writing to file: {e}")
  84.  
  85.     while True:  # Cikul za produlzhenie
  86.         command = input("Do you want to continue? (y/n): ").lower()  # Vuvezhdash y ili n
  87.         if command == "y":  # Ako e y produlzhavash
  88.             attempt += 1
  89.             break
  90.         elif command == "n":  # Ako e n spirash igrata
  91.             print(f"\n{name}, your final balance is: {money:.2f}")
  92.             exit()
  93.         else:  # Ako vuvedesh neshto drugo
  94.             print("Please enter 'y' or 'n'.")
  95.  
Advertisement
Add Comment
Please, Sign In to add comment