Игры / Эксперимент

Jev играет в «Змейку»

Игровой код вычисляет допустимые ходы и факты о поле, а Jev выбирает одно направление на каждом шаге.

По делу

Что это решает

В этой «Змейке» игровая логика остаётся обычным кодом: она ведёт поле, еду и столкновения. Jev получает рассчитанные варианты и выбирает одно направление на каждом такте игры.

Результат для пользователя

Посмотреть, как Jev выбирает ход в игровом цикле

Какие факты готовит игровой движок

Перед запросом код отбрасывает запрещённые направления и для каждого допустимого хода вычисляет расстояние до еды, доступную после хода область через flood fill и признаки тупика. Jev видит уже подготовленное состояние и отвечает на Choice-вопрос, а не рисует маршрут свободным текстом.

Это делает границу ответственности понятной: правила, допустимость и движение змеи — в движке; выбор среди допустимых направлений — у модели.

Почему важен дедлайн такта

Контроллер отправляет вопрос в начале такта и применяет полученный ответ к его концу. Если сеть или модель не успевают, змея продолжает двигаться прямо. Такой fallback позволяет игре не зависать в ожидании API, но не гарантирует удачного хода.

Что видно в интерфейсе и где ключ

В проекте есть canvas-поле, панель стратегии, текущего решения и лента принятых ходов. Браузер обращается к локальному маршруту /api/decide; API-ключ хранится в серверном Hono-прокси, а не в клиентском коде. Репозиторий содержит тесты игрового движка и контроллера.

Как попробовать самому

  1. 01Склонировать репозиторий и указать TYPESAFE_API_KEY в локальном .env по примеру автора.
  2. 02Установить зависимости и запустить pnpm dev: веб-интерфейс открывается на localhost:5188, прокси — на 127.0.0.1:8787.
  3. 03Смотреть ленту решений и сравнивать выбранное направление с рассчитанными допустимыми ходами; без ключа live-решений Jev не будет.
Инструкция и код автора

Ограничение этого проекта

Это демонстрация архитектуры быстрых решений, не доказательство, что Jev играет лучше алгоритмической стратегии.