Генератор кроссвордов
Реализуйте сайт, генерирующий уникальные кроссворды.
Основные возможности проекта
- Добавление вопросов и ответов пользователем.
- Хранение базы вопросов и ответов в localStorage.
- Генерация кроссворда из добавленных слов.
- Отображение сетки кроссворда и списка вопросов.
Управление словами
На странице должна быть форма для добавления новых слов в базу:
- Вопрос (инпут).
- Ответ (инпут) - слово, которое будет размещено в кроссворде.
- Кнопка "Добавить".
Также должна быть таблица со списком всех добавленных слов с возможностью удаления.
Генерация кроссворда
По нажатию на кнопку "Сгенерировать кроссворд" из списка добавленных слов выбираются случайные 5-8 слов. Алгоритм размещения слов в сетке:
- Разместить первое слово горизонтально в центре сетки.
- Последовательно размещать остальные слова, подбирая пересечения с уже размещенными словами (по одной общей букве).
- Слова размещаются по горизонтали или вертикали в зависимости от пересечений.
- Пронумеровать ячейки, с которых начинаются слова.
Отображение кроссворда
Кроссворд должен отображаться в виде сетки:
- Ячейки с буквами заполнены.
- Пустые ячейки серого цвета.
- Ячейки с номерами выделены.
Рядом с сеткой должны отображаться вопросы:
- "По горизонтали" - список вопросов для слов, расположенных горизонтально.
- "По вертикали" - список вопросов для слов, расположенных вертикально.
Хранение данных
Все добавленные слова и вопросы должны храниться в локальном хранилище браузера (localStorage). При повторном открытии страницы база слов должна сохраняться.
Дополнительные возможности
- Очистка всей базы слов.
- Режим проверки ответов (показ правильных букв).
- Экспорт кроссворда в изображение.