AutonomousVehicleControlBeginnersGuide
Python sample codes and documents about Autonomous vehicle control algorithm. This project can be used as a technical guide book to study the algorithms and the software architectures for beginners.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
Инфляция — экономика пять минут в день Латиницей — Inflatia: только там, где кириллица невозможна (адрес, имена файлов).Read the full README ↗
Латиницей — Inflatia: только там, где кириллица невозможна (адрес, имена файлов).
Короткие уроки экономики с Инфлей — Путь из юнитов, учебник с задачами и «Мир»: симулятор государства и бизнеса, где знания проверяются в деле. В партии у руля страны вы — центральный банк, Минфин, премьер, президент или трейдер: каждый квартал решаете про ставку, налоги и бюджет, ведёте выборы, войны и мирные договоры, держите в равновесии общество из социальных групп, а модель считает инфляцию, безработицу, курс, долг и остальное. «Своё дело» — отдельная игра: тайкун в реальном времени, где вы строите бизнес внутри живой экономики страны. Есть соло против ботов, вызов дня с общей таблицей и сетевая игра на двоих-троих с профилями игроков.
Знак — монета, надутая как воздушный шарик, с колонной «I» посередине. Источник —
public/favicon.svg (и тот же знак компонентом в src/logo.jsx); PNG-иконки
(icon-192/512, apple-touch-icon) и картинка для ссылок og-image.png
собираются из него командой npm run icons. Файлы логотипа для скачивания и
печати — в logo/ (SVG, знак 1024 px, горизонтальный логотип для тёмного и
светлого фона); пересобираются node scripts/logo-export.mjs.
docs/world.md — библия мира: страна, герои, голоса, правила текста, слоган
и названия, цвета, детский режим «Мира», как переносить юниты в Путь.docs/mechanics.md — словарь механик: виды заданий и шагов урока,
механики вокруг уроков, экономика наград, навигация, первый экран партии, обратная связь,
доступность.docs/roadmap-audit.md — аудит продукта: какие фичи объединить или убрать по данным событий, лиги и «пять минут в день», переход на часовой пояс ученика, слой i18n, новые «Персоналии», вариант нижней панели. Только план — решения за владельцем.docs/legal-todo.md — вопросы юристу (персональные данные, маркировка,
соглашение, голоса). Юридических выводов в коде и текстах нет — только открытые вопросы.Правило меняется сначала в docs/*.md, потом в коде.
recharts для графиков партии, KaTeX для формул учебника, lucide-react для иконокapi/*.js), хранилище — Upstash Redis (переменные окружения
KV_REST_API_URL и KV_REST_API_TOKEN, подключаются через Vercel Marketplace); без них
данные живут в памяти процесса и не переживают разные запросы.npm install
npm run dev # клиент на Vite; api/* локально не поднимается — нужен `vercel dev` или деплой
npm run lint # oxlint
npm test # vitest: модель партии, курс и тексты, награды, сервер
npm run build # tsc -b && vite build; сборка падает, если JS-чанк больше 400 КБ
# (бюджет первого экрана — 600 КБ JS без сжатия — проверяет e2e «вход: приветствие…»)
npm run e2e # Playwright: desktop, phone (Chromium) и webkit (iPhone 13)
npx playwright test --project=desktop --project=phone # без установленного WebKit
npx playwright test e2e/visual.e2e.js --project=phone --update-snapshots # обновить эталоны
npx playwright install webkit # один раз, чтобы локально шёл проект webkit
npm run balance # стенд длинных партий: баланс модели
npm run icons # иконки и картинка для ссылок из public/favicon.svg
npm run voice:normalize # записи речи public/voice и public/books: −16 LUFS, пик −1,5 dBTP, моно, 56 кбит/с (ffmpeg)
npm run books:export # books/: тексты для озвучки книг и README с тем, что уже записано
npm run people:optimize # портреты public/people: до 480 px по ширине, JPEG до 80 КБ, без EXIF (нужен ffmpeg)
npm run people:export # people/README.md: кто есть, сколько портретов лежит
Перед коммитом: npm run lint, npm test, npm run build, npx playwright test
(как минимум desktop + phone).
src/
MacroSimulator.jsx оболочка: вход, нижняя панель (Путь, Учебник, Мир, Лавка, Профиль), меню «Мира»
learn.jsx обучение: Путь, задания, урок, итоги, профиль (+ learn-*.jsx — части экранов)
learn/ чистые модули курса: уроки и юниты (course.js), награды (rewards.js),
карта экранов (screens.js), голоса героев (voices.js), кроны (money.js)
textbook.jsx учебник; textbook/ — главы (chapters/*.md, каждая — свой чанк), задачи,
графики, прогресс
game.jsx экран партии; network.jsx — сетевая партия; tycoon.jsx — «Своё дело»
ds.jsx, ds-art.jsx, дизайн-система: компоненты, иллюстрации, токены цвета и шрифта
ds-tokens.js (тёплая палитра WARM, тёмная тема «Мира»)
lib/ модель экономики (engine.js и model/, politics/, world/, content/),
возраст и детский режим (age.js), раскрытие панелей партии (disclosure.js),
гость (guest.js), клиент API (client.js)
api/ serverless-функции: аккаунт, комнаты, вызов дня, рекорды, сообщения
об ошибках, аналитика без персональных данных (events.js)
e2e/ smoke.e2e.js — сценарии; screens.e2e.js — все экраны + axe + размер шрифта;
visual.e2e.js — эталоны десяти ключевых экранов
docs/ библия мира, словарь механик, вопросы юристу
scripts/ стенд баланса, иконки, плагины сборки (service worker, разделы учебника)
src/lib/engine.js — ядро экономической модели (чистые функции, без React). Это
единственный источник истины: его же переиспользует сервер через api/_lib/engine.js
(тонкий реэкспорт), чтобы соло-игра и мультиплеер считали кварталы одинаково.
Не копировать эту логику в другое место..js/.jsx без проверки типов (checkJs: false). Полная миграция
на TypeScript для модели такого размера — отдельная задача, требующая
аккуратной типизации состояния экономики.watchRoom, раз в 2.5с),
а не через WebSocket/SSE — проще в связке с Vercel serverless, но даёт
задержку до нескольких секунд.