Урок 38. Space Invaders 8 — рівні та складність
Урок 38. Space Invaders 8 — рівні та складність
Section titled “Урок 38. Space Invaders 8 — рівні та складність”Тривалість: 45–60 хв Рівень: Game Developer
🎯 Місія
Section titled “🎯 Місія”Створи рівні й поступове зростання складності.
🧠 Ключова ідея
Section titled “🧠 Ключова ідея”if not enemies: level += 1 enemy_speed += 0.5 create_wave()💡 Пояснення простою мовою
Section titled “💡 Пояснення простою мовою”Коли гравець знищив усіх ворогів — починається нова хвиля. Вороги стають швидшими, і може з’явитися щось нове.
💡 Аналогія: Як у грі « тематичний парк»: кожен рівень — нова хвиля відвідувачів, і вони стають «вимогливішими». Ти не зупиняєшся — просто робиш складніше.
🧩 Розбираємо по рядках
Section titled “🧩 Розбираємо по рядках”if not enemies:— якщо список порожній (всі вбиті);level += 1— переходимо на наступний рівень;enemy_speed += 0.5— вороги стають швидшими;create_wave()— створюємо нову формуцію ворогів.
Потік рівнів
Section titled “Потік рівнів”graph TD
A["Гра почалася: level=1"] --> B["Створити хвилю ворогів"]
B --> C["Гравець грає"]
C --> D{"Усі вороги<br/>знищені?"}
D -- "Ні" --> C
D -- "Так" --> E["level += 1"]
E --> F["enemy_speed += 0.5"]
F --> G["Створити нову хвилю"]
G --> C
C --> H{"0 життів?"}
H -- "Так" --> I["GAME OVER"]
✏️ Основні завдання
Section titled “✏️ Основні завдання”- Створи
create_wave(). 🙋 Підказка: винеси код створення формації з уроку 33 у функціюdef create_wave():. - Нова хвиля після перемоги.
🙋 Підказка: перевіряй
if not enemies:кожен кадр після оновлення. - Підвищуй speed.
🙋 Підказка:
enemy_speed += 0.5при кожному новому level. - Кожен 5-й рівень зроби особливим.
🙋 Підказка:
if level % 5 == 0:— додай щось особливе (більше ворогів, Boss).
⭐ Challenge
Section titled “⭐ Challenge”Кожен п’ятий рівень — Boss.
🧪 Перед запуском
Section titled “🧪 Перед запуском”Хоча б раз за урок спробуй передбачити результат коду до запуску. Після запуску порівняй прогноз із реальністю.
🐞 Debug Mission
Section titled “🐞 Debug Mission”Навмисно зламай одну частину програми. Прочитай traceback або спостережи неправильну поведінку, знайди причину й виправ її.
✅ Урок завершено, якщо Марко може
Section titled “✅ Урок завершено, якщо Марко може”- пояснити головну ідею своїми словами;
- виконати основні завдання без копіювання готового рішення;
- змінити програму під нову вимогу;
- знайти й виправити хоча б одну власну помилку.
🏠 Домашня місія
Section titled “🏠 Домашня місія”Покращ Challenge однією власною ідеєю. Перед кодом сформулюй її одним реченням.
💡 Підказка для дорослого
Section titled “💡 Підказка для дорослого”Не виправляйте код одразу. Краще запитайте: «Що ти очікував? Що сталося? Який рядок за це відповідає? Що можна перевірити?»