✧ Комбинирование циклов ✧

🔄 Теория: Вложенные циклы

Вложенные циклы как Витая Бездна - сначала проходим все камеры на одном этаже, потом переходим на следующий!

Вложенные циклы:

# Прохождение Спиральной Бездны
floors = [9, 10, 11, 12]  # Этажи
chambers = [1, 2, 3]      # Камеры

for floor in floors:
    print(f"\nЭтаж {floor}:")
    for chamber in chambers:
        print(f"  Камера {chamber}: ⭐⭐⭐")  # 3 звезды!

Циклы с досрочным выходом:

# Фарм материалов для возвышения
def farm_materials(needed_amount):
    days = 0
    materials = 0
    
    while materials < needed_amount:
        days += 1
        resin = 160
        
        while resin >= 40:
            resin -= 40
            drop = get_boss_drops()  # 2-3 материала
            materials += drop
            
            if materials >= needed_amount:
                break  # Хватит материалов!
        
        print(f"День {days}: {materials}/{needed_amount}")
    
    return days

Обработка сложных структур:

# Проверяем статы всех артефактов
artifacts = {
    "Цветок": {"HP": 4780, "доп": ["Крит", "АТК%"]},
    "Перо": {"АТК": 311, "доп": ["Крит", "Мастерство"]},
    "Корона": {"Крит.УРОН": 62.2, "доп": ["АТК%", "Крит"]}
}

for piece, stats in artifacts.items():
    print(f"\n{piece}:")
    main_stat = next(iter(stats.items()))
    print(f"• Основной стат: {main_stat[0]} +{main_stat[1]}")
    
    print("• Доп. статы:")
    for substat in stats["доп"]:
        print(f"  - {substat}")

🏰 Задача: Генератор подземелий

Создайте генератор подземелий для фарма артефактов.

Структура подземелья:

# Данные для генерации
dungeon = {
    "name": "Дворец Момидзи",
    "sets": ["Эмблема рассечённой судьбы", "Воспоминания Симэнавы"],
    "enemies": ["Самурай", "Мечник", "Лучник"],
    "chambers": 3,
    "difficulty": "Высокая"
}

Реализуйте:

💡 Подсказка:

def generate_dungeon(template):
    dungeon_map = []
    curses = ["Увеличенное здоровье", "Усиленная защита"]
    
    for chamber in range(template["chambers"]):
        enemies = []
        for _ in range(random.randint(2, 4)):
            enemy = random.choice(template["enemies"])
            enemies.append(enemy)
            
        room = {
            "enemies": enemies,
            "curse": random.choice(curses),
            "reward": calculate_reward(enemies, difficulty)
        }
        dungeon_map.append(room)
⟵ Цикл while Функции ⟶