КурсыИИМатематикаКодФизикаО проекте и вопросы

TwiddleLab / Код / Структуры данных, которые видно

Кнопка «Отменить» и таблица лидеров

Урок 10 из 10 · 7 мин · Бесплатно, без аккаунта

Что ты узнаешь

  • Отмена и повтор работают на двух стеках: отмена переносит самое новое действие из done в undone, повтор переносит обратно.
  • Новое действие очищает стек undone, иначе повтор вернул бы другую историю.
  • Топу-3 нужно всего несколько сравнений на новый результат: держи его отсортированным, а 4-й пусть выпадает.
  • Окно памяти чат-бота это очередь фиксированной длины: самое старое сообщение уходит первым.

Начать урок

Как идёт урок

  1. Построй две функции, которые есть в каждом приложении: отмену и топ-3.

    Начни с крошечной рисовалки. Нарисуй что-нибудь за 5 мазков.

  2. Повтору нужен второй стек.

    Отмена откладывает мазки в undone; повтор забирает их обратно. Выполни все три задания.

    Оба стека отдают свой самый новый элемент. Отмене нужен самый новый сделанный мазок; повтору самый новый отменённый. После нового мазка отменённые мазки относятся к старой версии рисунка, поэтому их выбрасывают.

  3. План: два стека.

    done это стек всего сделанного. undone это стек того, что отменили.

    undo(): pop из done, push в undone. redo(): pop из undone, push в done.

    Любое новое действие кладётся в done, а undone очищается.

  4. Напиши undo().

    После двух отмен в done должен остаться red, а в undone green, потом blue.

  5. В чужом повторе баг.

    Посмотри демо, потом выбери исправление.

  6. Твой код за кнопкой отмены твоего рисунка.

    Каждое нажатие по-настоящему запускает твою undo().

  7. Теперь таблица лидеров: живой топ-3.

    Результаты приходят по одному. Ставь каждый на его место или за борт.

  8. Живой топ-3.

    Двенадцать результатов, быстро. Нажимай, куда идёт каждый.

  9. Память чат-бота это тоже очередь.

    Этот бот может хранить только 4 сообщения. Когда приходит новое, какое он забывает?

  10. Твоя карточка проекта.

    Твой рисунок, твоя отмена, твоя таблица лидеров.

Предыдущий урок: Выбираем подходящую структуру · Часть курса: Структуры данных, которые видно

Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.

Loading TwiddleLab