Урок 46. Stack — Undo
Урок 46. Stack — Undo
Section titled “Урок 46. Stack — Undo”Тривалість: 45–60 хв
Рівень: Algorithm Explorer
🎯 Місія
Section titled “🎯 Місія”Познайомся зі стеком через систему Undo.
🧠 Ключова ідея
Section titled “🧠 Ключова ідея”stack = []stack.append("draw circle")stack.append("move player")last_action = stack.pop()💡 Пояснення простою мовою
Section titled “💡 Пояснення простою мовою”Стек — це як стос тарілок: кладеш зверху (append), забираєш зверху (pop). Останнє, що ти поклав — перше, що візьмеш. Це називається LIFO (Last In — First Out).
🧩 Розбираємо по рядках
Section titled “🧩 Розбираємо по рядках”stack = []— порожній стос тарілокstack.append(...)— кладемо тарілку зверхуstack.pop()— забираємо верхню тарілку
Приклад: система Undo
Section titled “Приклад: система Undo”stack = []stack.append("Намалювати коло")stack.append("Рух гравця")stack.append("Стріляти")print(stack[-1]) # Стріляти (остання дія)
undone = stack.pop() # Забрали: Стрілятиprint(stack[-1]) # Рух гравця (тепер остання)graph TD
A["append draw circle"] --> B["append move player"]
B --> C["append shoot"]
C --> D["pop → shoot"]
D --> E["pop → move player"]
style C fill:#ff9800,color:#fff
style D fill:#4caf50,color:#fff
✏️ Основні завдання
Section titled “✏️ Основні завдання”- Стек із 5 дій.
- Undo через
.pop(). - Оброби пустий stack.
- Покажи верхню дію.
🙋 Підказка до завдання 3: спробуй pop() на порожньому стеку — буде помилка! Використай if stack: перед pop().
⭐ Challenge
Section titled “⭐ Challenge”Створи просту систему Undo.
🧪 Перед запуском
Section titled “🧪 Перед запуском”Хоча б раз за урок спробуй передбачити результат коду до запуску. Після запуску порівняй прогноз із реальністю.
🐞 Debug Mission
Section titled “🐞 Debug Mission”Навмисно зламай одну частину програми. Прочитай traceback або спостережи неправильну поведінку, знайди причину й виправ її.
✅ Урок завершено, якщо Марко може
Section titled “✅ Урок завершено, якщо Марко може”- пояснити головну ідею своїми словами;
- виконати основні завдання без копіювання готового рішення;
- змінити програму під нову вимогу;
- знайти й виправити хоча б одну власну помилку.
🏠 Домашня місія
Section titled “🏠 Домашня місія”Покращ Challenge однією власною ідеєю. Перед кодом сформулюй її одним реченням.
💡 Підказка для дорослого
Section titled “💡 Підказка для дорослого”Не виправляйте код одразу. Краще запитайте: «Що ти очікував? Що сталося? Який рядок за це відповідає? Що можна перевірити?»