Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random # importirash random, za da izbirash sluchaini simvoli
- import time # importirash time, za da polzvash zakasnenie (sleep)
- elements = ("🍇", "🍒", "7️⃣", "🍋", "🍉", "🌶️", "🍑") # Tupla s vsichki vazmozhni simvoli na slot mashinata
- multipliers = {3: 2, 4: 5, 5: 10} # Rechnik: pri 3 ednakvi simvola pechelish x2, pri 4 — x5, pri 5 — x10
- log_file = "slot_machine_log.txt" # Ime na faila, kudeto zapisvame vsichko, koeto se sluchva
- name = input("Please enter your name: ").capitalize() # Vuvezhdash ime i go pravi da zapochva s glavna bukva
- while True: # Povtaryash, dokato ne vuvedesh pravilno chislo
- user_input = input("Please enter your money: ") # Vuvezhdash kolko pari iskash da slozhish
- try: # Proverqvash dali e validno chislo
- money = float(user_input) # Prevrushtash vuvedenoto v chislo s plavashta zapetaq
- if money <= 0: # Ako e 0 ili po-malko kazvash che ne stava
- print("Money must be greater than 0.")
- continue # Vrusta te v nachaloto
- break # Ako vsichko e okei izlizash ot cikula
- except ValueError: # Ako vuvedesh tekst ili neshto greshno
- print("Invalid input. Please enter a valid number.")
- attempt = 1 # Broish kolko opita si napravil
- while True: # Glaven cikul na igrata
- print(f"\nAttempt #{attempt}") # Pokazvash nomera na opita
- while True: # Cikul za validaciq na zaloga
- user_input = input("Please enter your bet: ") # Vuvezhdash kolko iskash da zalozhish
- try:
- bet = float(user_input) # Prevrushtash go v chislo
- if bet <= 0: # Ako e nula ili po-malko, ne stava
- print("Bet must be greater than 0.")
- continue
- if bet > money: # Ako e po-golyam ot tova koeto imash
- print("Your bet is too high!")
- continue
- break # Ako vsichko e okei produlzhavash
- except ValueError: # Ako vuvedesh tekst ili greshka
- print("Invalid input. Please enter a valid number.")
- money -= bet # Svalyash zaloga ot parite ti
- outcome_list = [] # Praven spisuk za rezultatite ot tozi spin
- for _ in range(5): # 5 simvola za edin spin
- symbol = random.choice(elements) # Izbira sluchaen simvol ot tuple-a elements
- outcome_list.append(symbol) # Dobavq go v spisuka
- for symbol in outcome_list: # Pokazvash vsichki simvoli edin po edin
- print(symbol, end="", flush=True) # Pishe go bez nov red
- time.sleep(0.5) # Zakasnenie za efekt
- print() # Nov red sled vsichki simvoli
- counts = {} # Rechnik za broene na simvolite
- for symbol in outcome_list: # MInavash prez vseki simvol
- if symbol in counts: # Ako veche e imalo takuv
- counts[symbol] += 1 # Uvelichavash broikata
- else:
- counts[symbol] = 1 # Ako e nov, go dobavyash s 1
- max_count = max(counts.values()) # Vzimash nai-golyamata broika na povtarqsht se simvol
- winnings = 0 # Po nachalo nqma pechalba
- if max_count >= 3: # Ako ima 3 ili poveche ednakvi simvola
- winnings = bet * multipliers[max_count] # Presmyatash kolko pechelish
- print(f"You won! You earned {winnings:.2f}") # Kazvash che pechelish
- money += winnings # Dobavqsh pechalbata kum parite si
- else: # Ako nqma pechalba
- print("No win this time. Try again!")
- print(f"{name}, your current balance is: {money:.2f}") # Pokazvash kolko pari ostavat
- if money <= 0: # Ako parite sa 0 ili po-malko
- print(f"\n{name}, you're out of money! Game over.") # Kazvash che svurshvat
- exit() # Spirash programata
- try:
- with open(log_file, "a", encoding='utf-8') as f: # Otvash faila za dopulvane ("a") encodinga ti e za da ne vdiga greshka
- outcome_str = ''.join(outcome_list) # Prevrushtash spisuka v edin string
- f.write(f"{name} | Bet: {bet:.2f} | Outcome: {outcome_str} | "
- f"Winnings: {winnings:.2f} | Balance: {money:.2f}\n") # Zapisvash vsichko vuv faila
- except Exception as e: # Ako stane greshka pri zapis
- print(f"Error writing to file: {e}")
- while True: # Cikul za produlzhenie
- command = input("Do you want to continue? (y/n): ").lower() # Vuvezhdash y ili n
- if command == "y": # Ako e y produlzhavash
- attempt += 1
- break
- elif command == "n": # Ako e n spirash igrata
- print(f"\n{name}, your final balance is: {money:.2f}")
- exit()
- else: # Ako vuvedesh neshto drugo
- print("Please enter 'y' or 'n'.")
Advertisement
Add Comment
Please, Sign In to add comment