Урок 12.3 · Интерфейсы и сайты с нуля · Модуль 12. Праздник на экране · По подписке
Цель урока: Собрать поле «Мемори» из восьми карточек кодом — из массива данных — и научить его запоминать, какая карточка открыта.
Нужно знать заранее: Уроки 4.2, 5.3 и 12.1
Объяснение
Зачем это нужно:
До этого урока мы всегда делали один элемент руками: одну кнопку, одного героя, одну монету. Но игр, где элементов много и они одинаковые, больше: поле «Мемори», лента товаров, список задач, сетка фотографий. Восемь карточек ещё можно написать в разметке, восемьдесят — уже нет: правка одной карточки станет правкой восьмидесяти.
Поэтому здесь появляется главный приём интерфейсов: элементы не пишут руками, а собирают из данных. Данные — это массив, а сборка — это цикл.
Как это работает:
Массив — это список значений в одном месте: const values = ['🎁', '🎄', '🎁', '🎄', '⭐', '🔔', '⭐', '🔔']. Четыре пары — восемь значений, и каждое значение встречается ровно дважды.
Цикл for...of берёт значения по одному. На каждом шаге происходит одно и то же: createElement создаёт новый элемент, className даёт ему класс (а класс — это стили), textContent кладёт внутрь эмодзи, appendChild ставит карточку в поле. Один и тот же код выполняется восемь раз, а руками мы бы писали восемь одинаковых блоков.
Состояние игры — это переменные: first (какая карточка открыта и ждёт пару), moves (сколько ходов сделано), found (сколько пар найдено) и locked (можно ли сейчас нажимать). Классы open, done и wrong — тоже состояние, только оно видно: класс меняет цвет через CSS, а не через сто условий в скрипте.
Зачем locked. Пара закрывается не мгновенно: человек должен успеть запомнить, где что лежит. Пока идёт эта задержка, он может нажать третью карточку — и логика сломается: first уже сброшен, а две карточки ещё открыты. Флаг locked просто запрещает ввод на эти доли секунды.
Компьютер без страха — Файлы, браузер, пароли, мошенники, документы и деньги в интернете простыми словами. Бесплатно и без оплаты.
Если уже случилось — Деньги ушли с карты, пропала симка, взломали аккаунт, потерялись документы — порядок действий по шагам и куда звонить.
Какой компьютер нужен — Чек-лист по уровням: для учёбы ничего покупать не нужно, для своего проекта — 16 ГБ и SSD, для работы — 32 ГБ. Плюс нейросети и устаревание железа.
Без кода: ставить задачу — Как объяснить задачу программисту и принять работу. Кода нет ни строчки.
Профессии и языки — Кто такие программисты, зачем столько языков и что делать после курса.
Потренироваться
Практикум: задачи из жизни — Та же команда урока — на работе, дома и в документах. 63 задачи с проверкой вывода и без регистрации.
Игры-тренажёры — Найти ошибку в чужом коде, прочитать, что делает программа, и увидеть, что случится, если нажать клавишу.
Симулятор: от задания до сдачи — Пройти путь целиком: папка, терминал, файл, сохранение, запуск, проверка по критерию приёмки. Два сценария и две системы.
Мастерская экрана — Проверить цвета и раскладку страницы: контраст, шаблоны, конструктор.
Колесо фортуны — Одна прокрутка в день: скидка на подписку или дни доступа.
Словари и юмор
Словарь программиста — Слова из уроков и кода: парсинг, функция, хеш, компиляция.
Словарь руководителя — Слова из работы простыми словами: скоуп, дедлайн, MVP, бэклог.
Корявые задачи — Юмор: как ставят задачи и что из этого получается. С моралью.
Сайт, оплата и помощь
Родителям — Возраст, время на уроки, безопасность в сообществе, деньги и результат — что важно знать до оплаты.