Сделай законченную мини-игру в одном самодостаточном файле index.html. Никаких внешних библиотек, шрифтов, картинок, звуковых файлов и сетевых запросов — весь HTML, CSS и JS внутри файла.
ГЛАВНОЕ В ЭТОМ ЗАДАНИИ — САМА ИГРА, а не обвязка вокруг неё. Нужна одна ясная механика, которую можно описать одним предложением, и в которой исход зависит от решений и умения игрока, а не от удачи. Игрок должен понять, что делать, за три секунды и без инструкции, а проиграв — видеть, в чём именно ошибся.
Придумай своё. Штампы не берём: змейка, flappy bird, тетрис, арканоид, пинг-понг, 2048, «уворачивайся от падающих предметов», кликер и их перекраски. Если всё же берёшь знакомую основу, добавь в неё механику, которой там обычно нет, и она должна менять способ игры, а не оформление.
Каким должен получиться результат:
* Первые десять секунд проходит любой; к минуте становится трудно. Партия длится от тридцати секунд до двух минут — бесконечно выживать нельзя.
* Сложность растёт ощутимо, но игра остаётся выполнимой: неизбежных проигрышных положений случайная генерация создавать не должна. Поражение наступает по вине игрока, и причина ему видна.
* Каждое действие даёт мгновенный отклик — движением, вспышкой, звуком. Успех и ошибка выглядят по-разному.
* В любой момент с одного взгляда понятно: сколько очков, где опасность и что делать. Счёт отражает успех игрока, а не просто прожитое время.
* Стартовый экран с правилом в одно предложение, честный конец партии с итогом, рекорд за сессию с отметкой «новый рекорд» и перезапуск одним действием, без перезагрузки страницы.
* Игра идёт плавно, без рывков, и встаёт на паузу, когда вкладку свернули.
* Работает и на компьютере, и на телефоне: клавиатура, мышь и касание. На ширине 320 px надписи читаются, области нажатия не меньше 44 px, игровые жесты не прокручивают страницу.
Текст можно рисовать как разметкой, так и на холсте — оценивается его видимость и читаемость, а не способ вывода.
Игру откроют во встроенной рамке: лови события на document и начинай работать сразу после первого нажатия внутри рамки, не требуя попадания точно по холсту. Звук необязателен; если он есть — только синтезом через WebAudio и только после первого действия игрока. Вся важная обратная связь должна быть понятна и без звука.
Для автоматической проверки держи в `window.__игра` объект `{счёт, идёт, конец, рекорд}`: счёт и рекорд — числа, `идёт` и `конец` — да/нет, значения обновляются по ходу партии и сбрасываются при перезапуске. На вид игры это не влияет.
Верни ТОЛЬКО содержимое файла index.html целиком в одном блоке кода.
Эту работу придумала и написала нейросеть GPT-6 Astra — в сравнении нейросетей, сезон 3. Сравнение нейросетей · что такое токены (?)