TwiddleLab / Код / Структуры данных, которые видно
Кнопка «Отменить» и таблица лидеров
Что ты узнаешь
- Отмена и повтор работают на двух стеках: отмена переносит самое новое действие из done в undone, повтор переносит обратно.
- Новое действие очищает стек undone, иначе повтор вернул бы другую историю.
- Топу-3 нужно всего несколько сравнений на новый результат: держи его отсортированным, а 4-й пусть выпадает.
- Окно памяти чат-бота это очередь фиксированной длины: самое старое сообщение уходит первым.
Как идёт урок
Построй две функции, которые есть в каждом приложении: отмену и топ-3.
Начни с крошечной рисовалки. Нарисуй что-нибудь за 5 мазков.
Повтору нужен второй стек.
Отмена откладывает мазки в undone; повтор забирает их обратно. Выполни все три задания.
Оба стека отдают свой самый новый элемент. Отмене нужен самый новый сделанный мазок; повтору самый новый отменённый. После нового мазка отменённые мазки относятся к старой версии рисунка, поэтому их выбрасывают.
План: два стека.
done это стек всего сделанного. undone это стек того, что отменили.
undo(): pop из done, push в undone. redo(): pop из undone, push в done.
Любое новое действие кладётся в done, а undone очищается.
Напиши undo().
После двух отмен в done должен остаться red, а в undone green, потом blue.
В чужом повторе баг.
Посмотри демо, потом выбери исправление.
Твой код за кнопкой отмены твоего рисунка.
Каждое нажатие по-настоящему запускает твою undo().
Теперь таблица лидеров: живой топ-3.
Результаты приходят по одному. Ставь каждый на его место или за борт.
Живой топ-3.
Двенадцать результатов, быстро. Нажимай, куда идёт каждый.
Память чат-бота это тоже очередь.
Этот бот может хранить только 4 сообщения. Когда приходит новое, какое он забывает?
Твоя карточка проекта.
Твой рисунок, твоя отмена, твоя таблица лидеров.
Предыдущий урок: Выбираем подходящую структуру · Часть курса: Структуры данных, которые видно
Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.