🏫 Урок 35

Алгоритми опрацювання списків

🎮 Game Dev Edition

🏫 Урок 35

🖥️ Інформатика | 8 клас
🏫 Урок 35

🎯 Місія на сьогодні

Уяви, що ти — розробник гри (наприклад, у Roblox). Тобі потрібно написати скрипт для інвентаря гравця.

Ми навчимося:

  • 🔍 Знаходити суму золота та найкращі предмети (sum, max, min).
  • ⚙️ Розуміти, як це працює "під капотом" (цикли).
  • 🛠️ Фільтрувати предмети за певними умовами.
🖥️ Інформатика | 8 клас
🏫 Урок 35

🎒 Ігровий інвентар = Список

Для комп'ютера твій рюкзак — це просто список чисел (ціна, вага або сила удару).

# Сила атаки мечів у рюкзаку
swords_damage = [10, 55, 100, 5, 45]

# Кількість золота з монстрів
gold_loot = [15, 5, 200, 50]

Як швидко порахувати загальну силу або знайти найслабший меч? 🤔

🖥️ Інформатика | 8 клас
🏫 Урок 35

Сума елементів (Загальна сума)

⚡ Швидкий спосіб

Функція sum() автоматично додає всі числа у списку.

loot = [10, 20, 5]

# Результат: 35
total = sum(loot)

⚙️ Алгоритм (Цикл)

Метод "Скарбничка". Створюємо змінну total = 0 і додаємо до неї кожне число по черзі.

loot = [10, 20, 5]
total = 0

for x in loot:
    total = total + x

print(total)  # 35
🖥️ Інформатика | 8 клас
🏫 Урок 35

Пошук максимуму (Best Item)

⚡ Швидкий спосіб

Функція max() миттєво знаходить найбільше число. А функція min() — найменше.

dmg = [10, 55, 5]

best = max(dmg) # 55

⚙️ Алгоритм (Цикл)

Метод "Цар гори". Беремо перший елемент за "максимум" і порівнюємо з іншими.


dmg = [10, 55, 5]
m = dmg[0]

for x in dmg:
    if x > m:
        m = x

print(m) # 55
🖥️ Інформатика | 8 клас
🏫 Урок 35

Робота з умовами (Filter)

Якщо треба порахувати не все, а тільки "Епічні предмети" (вартість > 100), прості функції не допоможуть. Потрібен цикл + if.

📋 Задача

  • Знайти кількість предметів, дорожчих за 100 монет.
  • Вхідні дані: prices = [50, 150, 20, 200]

⚙️ Реалізація

count = 0  # Лічильник

for p in prices:
    if p > 100:
       count += 1

print("Епічних предметів:", count)  # 2
🖥️ Інформатика | 8 клас
🏫 Урок 35

💻 Практична робота: "Loot Master"

Легенда: Ви пишете скрипт для аналізу здобичі після рейду. gold_drops (скопіюйте в код рядок нижче), що описує всі купи золота, які випали з монстрів:

gold_drops = [15, 5, 200, 45, 10, 300, 15, 50]

Виконуйте завдання по черзі, підвищуючи рівень свого коду!

🖥️ Інформатика | 8 клас
🏫 Урок 35

Рівень: ⭐️ Достатній

"Базовий аналіз"

Скопіюйте код поданий нижче в свою програму та підставте правильні функції (sum(), min(), max()) замість слова функція.

print("Всього випало золота", функція(gold_drops))

print("Найбільша купа золота", функція(gold_drops))

print("Найменша купа золота", функція(gold_drops))
🖥️ Інформатика | 8 клас
🏫 Урок 35

Рівень: ⭐⭐️ Середній

"Статистика розробника"

  • Обчисліть та виведіть на екран середній заробіток з одного монстра (Загальна сума / Кількість скарбів). Підказка: кількість скарбів шукає функція len().

  • Використовуючи цикл for та оператор if, порахуйте кількість "Великих скарбів" (де золота ≥ 50).

  • Виведіть на екран, скільки великих скарбів було знайдено.

🖥️ Інформатика | 8 клас
🏫 Урок 35

Рівень: 🌟🌟🌟 Високий

"Розумний фільтр"

В інвентарі мало місця. Напишіть алгоритм (цикл for), який знайде суму лише тих куп золота, які є меншими за 100 (дріб'язок — монети, які ми не будемо збирати).

🖥️ Інформатика | 8 клас
🏫 Урок 35

🏠 Домашнє завдання

Проєкт "XP Counter"

Створіть список очок досвіду одержаних за 5 квестів: xp_points = [500, 1200, 300, 1500, 800]

Напишіть програму, яка:

  • Порахує та виведе на екран загальний досвід.
  • Визначить, скільки квестів були "Складними" (дали більше 1000 XP). Та виведе їхню кількість на екран.
🖥️ Інформатика | 8 клас