Загрузка данных


import random

def run_lift_simulation():
    # Неисправности
    failures = {
        "Разбитое зеркало": False,
        "Занято (перегруз)": False,
        "Зажат предмет в дверях": False,
        "Нет электричества": False,
        "Нажата кнопка 'Стоп' внутри": False
    }
    
    # Внешние факторы
    external_factors = {
        "Кто-то курит в кабине": False,
        "Разлита жидкость на полу": False,
        "В лифте громкая музыка": False,
        "Пассажир потерял сознание": False
    }
    
    # С вероятностью 10% активируем неисправности
    for key in failures:
        if random.random() < 0.1:
            failures[key] = True
    
    for key in external_factors:
        if random.random() < 0.1:
            external_factors[key] = True
    
    # Вывод таблицы
    print("\n" + "=" * 90)
    print("СИМУЛЯТОР ЛИФТА (вероятность поломки 10%)")
    print("=" * 90)
    print(f"{'Тип':<25} {'Описание':<35} {'Активна':<10} {'Влияние на движение':<30}")
    print("-" * 90)
    
    for failure, status in failures.items():
        status_text = "ДА" if status else "НЕТ"
        if failure in ["Нет электричества", "Зажат предмет в дверях", "Нажата кнопка 'Стоп' внутри"]:
            influence = "Блокирует"
        else:
            influence = "Не блокирует"
        print(f"{'Техническая':<25} {failure:<35} {status_text:<10} {influence:<30}")
    
    for factor, status in external_factors.items():
        status_text = "ДА" if status else "НЕТ"
        print(f"{'Внешний фактор':<25} {factor:<35} {status_text:<10} {'Не блокирует':<30}")
    
    print("-" * 90)
    
    # Проверка критических ошибок
    critical = ["Нет электричества", "Зажат предмет в дверях", "Нажата кнопка 'Стоп' внутри"]
    can_move = True
    reason = ""
    
    for crit in critical:
        if failures[crit]:
            can_move = False
            reason = f"КРИТИЧЕСКАЯ ОШИБКА: {crit}"
            break
    
    if can_move:
        reason = "Лифт исправен, движение разрешено"
    
    # Результат
    if can_move:
        print("\nРЕЗУЛЬТАТ: Лифт поедет")
        print(f"Причина: {reason}")
        
        active_external = [f for f, s in external_factors.items() if s]
        if active_external:
            print("Внешние факторы:")
            for factor in active_external:
                print(f"  - {factor}")
    else:
        print("\nРЕЗУЛЬТАТ: Лифт НЕ поедет")
        print(f"Причина: {reason}")
    
    print("=" * 90)
    return can_move

# Запуск 3 симуляций
if __name__ == "__main__":
    for i in range(3):
        print(f"\n\nСИМУЛЯЦИЯ {i+1}")
        run_lift_simulation()
        if i < 2:
            input("\nНажмите Enter для продолжения...")