O jogo sorteia um veículo e mostra até cinco pistas iniciais. Cada pista extra reduz a pontuação da rodada.
O catálogo tem 177 veículos ativos: 98 carros, 52 caminhões e 27 motos. Cada categoria tem seu próprio baralho e suas próprias pistas.
![]() Pistas progressivas Cada pista extra reduz em um ponto o valor da rodada |
![]() Uma rodada completa Da primeira pista à revelação |
- Escolha a categoria.
- Selecione Sozinho ou Em dupla.
- Revele pistas até saber a resposta.
- Responda e confira a ficha do veículo.
No modo Sozinho, há quatro alternativas e o servidor confere a escolha. No modo Em dupla, quem conduz revela a resposta e lê as pistas para outra pessoa.
Um acerto vale o número de pistas progressivas que restavam, com o mínimo de um ponto. Pontos, acertos e erros ficam salvos no navegador, separados por modo.
| Categoria | Pistas iniciais | Outras pistas possíveis |
|---|---|---|
| Carros | ano, preço FIPE, combustível, cilindrada e potência | procedência, torque, motor, aspiração, câmbio, tração, carroceria, cilindros, portas e válvulas |
| Caminhões | ano, preço FIPE, potência, torque e cilindrada | trações disponíveis, procedência, PBT, PBTC, câmbio, cilindros, cabine, aspiração e motor |
| Motos | ano, preço FIPE, potência, estilo e combustível | procedência, torque, ciclo do motor, cilindros, válvulas, refrigeração, câmbio, transmissão final, peso, altura do assento, ABS, cilindrada e motor |
Campos sem fonte confiável não aparecem na rodada.
Um veículo só volta depois que os outros da categoria aparecerem. Quando o baralho recomeça, os oito veículos mais recentes continuam de fora nas primeiras rodadas.
O histórico de cada categoria fica salvo no navegador. Na versão online, uma cópia cifrada também fica em cookie.
Na versão online, o navegador recebe apenas os campos usados nas pistas. No modo Sozinho, marca, modelo, versão e imagem só saem do Cloudflare Worker depois da resposta.
Os tokens de rodada e de baralho usam AES-GCM. O servidor não guarda sessão ou histórico em banco de dados.
O fallback do GitHub Pages roda todo o catálogo no cliente e não oferece a mesma proteção contra inspeção.
Cada veículo é um JSON em content/vehicles/cars/, content/vehicles/trucks/ ou content/vehicles/motorcycles/. A identificação e os preços vêm da tabela FIPE. As outras especificações são pesquisadas em fabricantes e publicações especializadas. A fonte fica registrada em specSource e specSourceUrl.
As imagens e seus créditos ficam em content/images.json. Cada registro informa mercado, conteúdo da foto, autor, licença e origem quando esses dados existem. O validador reprova veículos ativos sem imagem conferida.
As fotos de carros e caminhões usam URLs HTTPS externas. As 27 motos usam arquivos WebP em public/vehicles/. Os créditos também podem ser consultados no jogo.
Requer Bun.
bun install
bun run devA API sobe em 127.0.0.1:3001 e o frontend em 0.0.0.0:3000.
bun run typecheck # TypeScript 7 nativo
bun run lint # oxlint
bun run format:check # Prettier sem alterar arquivos
bun run build
bun run validate:content # schema, imagens e regras de curadoria
bun run refresh:fipe # atualiza os preços FIPE salvos
bun run deploy # build e deploy no Cloudflare WorkersAs regras ficam em src/domain/ e são usadas pelo cliente, pela API local e pelo Worker. Vehicle é uma união discriminada por kind, com schema e pistas próprios para cada categoria.
Não há banco de dados. Em produção, o estado necessário viaja cifrado entre o navegador e o Cloudflare Worker. O frontend é responsivo e instalável como PWA.







