Jev играет в «Змейку»
Игровой код вычисляет допустимые ходы и факты о поле, а Jev выбирает одно направление на каждом шаге.
расстояние до еды
доступные клетки
Что это решает
В этой «Змейке» игровая логика остаётся обычным кодом: она ведёт поле, еду и столкновения. Jev получает рассчитанные варианты и выбирает одно направление на каждом такте игры.
Посмотреть, как Jev выбирает ход в игровом цикле
Какие факты готовит игровой движок
Перед запросом код отбрасывает запрещённые направления и для каждого допустимого хода вычисляет расстояние до еды, доступную после хода область через flood fill и признаки тупика. Jev видит уже подготовленное состояние и отвечает на Choice-вопрос, а не рисует маршрут свободным текстом.
Это делает границу ответственности понятной: правила, допустимость и движение змеи — в движке; выбор среди допустимых направлений — у модели.
Почему важен дедлайн такта
Контроллер отправляет вопрос в начале такта и применяет полученный ответ к его концу. Если сеть или модель не успевают, змея продолжает двигаться прямо. Такой fallback позволяет игре не зависать в ожидании API, но не гарантирует удачного хода.
Что видно в интерфейсе и где ключ
В проекте есть canvas-поле, панель стратегии, текущего решения и лента принятых ходов. Браузер обращается к локальному маршруту /api/decide; API-ключ хранится в серверном Hono-прокси, а не в клиентском коде. Репозиторий содержит тесты игрового движка и контроллера.
Как попробовать самому
- 01Склонировать репозиторий и указать TYPESAFE_API_KEY в локальном
.envпо примеру автора. - 02Установить зависимости и запустить
pnpm dev: веб-интерфейс открывается на localhost:5188, прокси — на 127.0.0.1:8787. - 03Смотреть ленту решений и сравнивать выбранное направление с рассчитанными допустимыми ходами; без ключа live-решений Jev не будет.
Ограничение этого проекта
Это демонстрация архитектуры быстрых решений, не доказательство, что Jev играет лучше алгоритмической стратегии.