# Ракета без класса
# пусть у ракеты будет определены объём топливного отсека, тип топлива, расход топлива и полезная нагрузка

def create_new_rocket(tank, fuel, consumption, payload):
    return {
        "tank": tank,                   # объём топливного отсека
        "fuel": fuel,                   # тип топлива
        "consumption": consumption,     # расход топлива на 1 км (в далёком космосе)
        "payload": payload,             # полезная нагрузка (например, спутник)
        "engine": False,                # включён ли двигатель
        "distance": 0                   # расстояние от стартовой точки
    }


soyuz_2 = create_new_rocket(100, "T-1", 1, "Союз МС-29")
print(soyuz_2)
print(soyuz_2["payload"])
print(soyuz_2["fuel"])

SLS = create_new_rocket(500, "H2", 2.5, "Orion CM-3")



def start_engine(rocket):
    rocket["engine"] = True
    print("Двигатель включён!")


print(soyuz_2["engine"])  # до включения
start_engine(soyuz_2)
print(soyuz_2["engine"])  # после включения



def fly(rocket, distance):
    if rocket["engine"]:
        fuel_required = rocket["consumption"] * distance
        if fuel_required > rocket["tank"]:
            print("У ракеты нет столько топлива!")
        else:
            print("Поехали!")
            rocket["distance"] += distance
            rocket["tank"] -= fuel_required

    else:
        print("У ракеты выключен двигатель!")


fly(soyuz_2, 500)  # топлива не хватит
fly(soyuz_2, 50)   # а тут хватит
fly(SLS, 100)      # а у этой ракеты вообще двигатель не включён



def deploy_payload(rocket):
    if rocket["payload"] != "":
        print(rocket["payload"], "теперь в", rocket["distance"], "километрах от начальной точки")
        rocket["payload"] = ""  # выпустили спутник в космос
    else:
        print("У ракеты уже нет ничего внутри!")


deploy_payload(soyuz_2)
deploy_payload(soyuz_2)  # второй раз не получится
