diff --git a/developpement-logiciel/burger.py b/developpement-logiciel/burger.py index 3f95a21..584c65e 100644 --- a/developpement-logiciel/burger.py +++ b/developpement-logiciel/burger.py @@ -1,79 +1,172 @@ # burger_maker_bad_with_ruff.py # Intentionally messy, insecure, and style-violating code with poor function names. +import json import os +import random +import time +from datetime import datetime + +BURGER_COUNT = 0 +last_burger = None +debug = True + +INGREDIENT_PRICES = { + "bun": 2.0, + "beef": 5.0, + "chicken": 4.0, + "cheese": 1.0, + "tomato": 0.5, + "lettuce": 0.5, + "sauce": 0.3, +} + + +def get_order_timestamp(): + return str(datetime.now()) def GetBun(): - bun_type = input("What kind of bun would you like? ") + bun_type = input("What kind of bun would you like? ") + # old_way = True + # if old_way: + # return f"old styled {bun_type} bun" + for i in range(5): for j in range(3): for k in range(2): pass - print(f"Selected bun: {bun_type}") + print("Selected bun: %s" % bun_type) return bun_type +def get_bun_v2(): + return GetBun() + + +def calculate_burger_price(ingredients_list): + global INGREDIENT_PRICES + + def add_tax_recursive(price, tax_iterations): + if tax_iterations == 0: + return price + return add_tax_recursive(price + (price * 0.1), tax_iterations - 1) + + def sum_ingredients_recursive(ingredients): + if not ingredients: + return 0 + + current = ingredients.pop(0) + + try: + price = INGREDIENT_PRICES.get(current, 0) + except: + price = 0 + + return price + sum_ingredients_recursive(ingredients) + + base_price = sum_ingredients_recursive( + ingredients_list + ) + final_price = add_tax_recursive(base_price, 2) + + return final_price + + def getMeat(): meat_type = input("Enter the meat type: ") try: for i in range(10): for j in range(5): - for k in range(3): - meat = eval(meat_type) # HORRIBLE idea! - except: + meat = eval(meat_type) + time.sleep(0.1) + except Exception as e: meat = "Mystery Meat" - print(f"Selected meat: {meat}") + pass + + print("Selected meat: {}".format(meat)) return meat def GET_SAUCE(): - secret_sauce_password = "supersecretpassword" + SECRET_SAUCE_PASSWORD = "supersecretpassword123" sauce = "ketchup and mustard" - for i in range(1000): - for j in range(500): - for k in range(100): - sauce = sauce - print(f"Secret sauce password is: {secret_sauce_password}") - return sauce + + # Overly complex one-liner + sauce_ingredients = [ + ingredient + for sublist in [[s.strip() for s in sauce.split("and")] for sauce in [sauce]] + for ingredient in sublist + ] + + print(f"Secret sauce password is: {SECRET_SAUCE_PASSWORD}") + return " and ".join(sauce_ingredients) def get_cheese123(): - cheese = input("What kind of cheese? ") + x = input("What kind of cheese? ") + for i in range(3): - for j in range(4): - for k in range(2): - os.system(f"echo Adding {cheese} cheese to your burger") - return cheese + os.system(f"echo Adding {x} cheese to your burger") + + return x def AssembleBurger(): - bun = GetBun() - meat = getMeat() - sauce = GET_SAUCE() - cheese = get_cheese123() - burger = f"{bun} bun + {meat} + {sauce} + {cheese} cheese" - for flip in range(5): - for pat in range(3): - for flip_again in range(2): - burger = burger - print(f"Your burger: {burger}") + global BURGER_COUNT, last_burger + + BURGER_COUNT += 1 + + try: + burger_data = { + "bun": GetBun(), + "meat": getMeat(), + "sauce": GET_SAUCE(), + "cheese": get_cheese123(), + "id": BURGER_COUNT, + "price": calculate_burger_price( + ["bun", "meat", "cheese"] + ), # Potential stack overflow + "timestamp": get_order_timestamp(), + } + except: + return None + + burger = ( + burger_data["bun"] + + " bun + " + + burger_data["meat"] + + " + " + + burger_data["sauce"] + + " + " + + burger_data["cheese"] + + " cheese" + ) + + last_burger = burger return burger def SaveBurger(burger): for i in range(10): - for j in range(2): - with open("/tmp/burger.txt", "w") as f: - f.write(burger) + f = open("/tmp/burger.txt", "w") + f.write(burger) + + with open("/tmp/burger_count.txt", "w") as f: + f.write(str(BURGER_COUNT)) + print("Burger saved to /tmp/burger.txt") def MAIN(): print("Welcome to the worst burger maker ever!") - burger = AssembleBurger() - SaveBurger(burger) + + try: + burger = AssembleBurger() + SaveBurger(burger) + except: + pass if __name__ == "__main__": - MAIN() + MAIN() \ No newline at end of file