import random MAX_LINES = 3 MAX_BET = 100 MIN_BET = 1 ROWS = 3 COLS = 3 symbol_count = { "A": 2, "B": 4, "C": 6, "D": 8 } def get_slot_machine_spin(rows, cols, symbol): all_symbols = [] for symbol, symbol_count in symbol.items(): #this is so as it picks from the list it gets the values and the index for _ in range(symbol_count): # underscore ???? all_symbols.append(symbol) columns = [] for _ in range(cols): column = [] current_symbols = all_symbols[:] for _ in range(rows): value = random.choice(current_symbols) current_symbols.remove(value) column.append(value) columns.append(column) return columns def print_slotmachine(columns): for row in range(len(columns[0])): for i, column in enumerate(columns): if i != len(columns) - 1: print(column[row], "|") else: print(column[row],) def deposit() -> int: amount = 0 while amount == 0: response = input("What would you like to depsoit? $") if response.isdigit(): amount = int(response) if amount == 0: print(" Error: Amount must be greater than zero") else: print(" Error: Please enter a number") return amount def get_number_of_lines() -> int: lines = 0 while lines < 1 or lines > MAX_LINES: response = input("Enter the number of lines to bet on (1-" + str(MAX_LINES) + ")? ") if response.isdigit(): lines = int(response) if lines < 1 or lines > MAX_LINES: print(" Error: Enter a valid number of lines.") else: print(" Error: Please enter a number") return lines def get_bet() -> int: bet = 0 while bet < MIN_BET or bet > MAX_BET: amount = input("What would you like to Bet on each line? $") if amount.isdigit(): bet = int(amount) if bet < MIN_BET or bet > MAX_BET: print(f" Error: Amount must be between ${MIN_BET} - ${MAX_BET}.") else: print(" Error: Please enter a number") return bet def main(): balance = deposit() lines = get_number_of_lines() while True: bet = get_bet() total_bet = bet * lines if total_bet > balance: print(f" Error: You do not have enough to bet that amount, curent balance is: ${balance} ") else: break total_bet = bet * lines print(f"You are betting ${bet} on {lines} lines. Total bet is equal to: ${total_bet} ") slots = get_slot_machine_spin(ROWS, COLS, symbol_count) print_slotmachine(slots) main()