Contrato canônico do produto

Cada sinal de progresso com um significado

Classificação, XP, dificuldade e posição semanal respondem a perguntas diferentes. Estas são as regras que o app e o servidor devem compartilhar.

Como o fluxo se conecta

Uma tentativa finalizada pelo servidor alimenta sinais separados. Cada sinal responde a uma pergunta diferente e pode ser inspecionado sem transformar progresso em uma promessa de domínio.

  1. 01
    Desafio finalizadoO servidor valida o resultado, a dificuldade e o identificador da tentativa.
  2. 02
    Skills e XPSkills inferidas recebem uma única concessão de XP conforme a dificuldade.
  3. 03
    Próxima dificuldadeNo automático, resultado e skill orientam o próximo passo; no manual, vale o nível fixo escolhido.
  4. 04
    Sequência e conquistaEventos válidos podem avançar a sequência diária e marcos alcançáveis, sem conceder XP de novo.

Quatro sinais, quatro perguntas

Rating

Classificação inspirada no Elo

A classificação começa em 1000, tem piso 100 e usa fatores K 32, 24 e 16. Acerto, dificuldade do desafio e tempo afetam cada variação. Não existe adversário humano, e a classificação não controla a dificuldade adaptativa.

XP por skill

XP e níveis por skill

Um desafio resolvido concede a cada skill inferida um único prêmio: 60/100/140/180/220 XP nas dificuldades 1–5. As dez skills têm níveis 1–5; o próximo marco é round(100 × nível^1.5), e o nível 5 exibe 100%.

Dificuldade

Dificuldade adaptativa

A dificuldade usa o resultado recente e o progresso da skill relevante para escolher o próximo passo. Ela não concede XP novamente nem lê a classificação inspirada no Elo.

Posição semanal

Ranking semanal

O ranking semanal conta soluções finalizadas pelo servidor desde segunda-feira UTC. Somente o campo canônico solved_count determina a posição pública; progresso informado pelo cliente nunca a altera.

Exemplos de controle de dificuldade

01

Modo automático

Depois de uma tentativa finalizada, o backend usa o resultado e o nível demonstrado da skill para manter, subir ou reduzir o próximo desafio. O rating não participa dessa escolha.

02

Modo manual

Você escolhe um nível de 1 a 5. A preferência é validada e persistida pelo backend para a identidade Firebase atual, inclusive anônima, e novas gerações respeitam esse nível até voltar ao automático.

Limites e sincronização

O estado principal é autoritativo no servidor. Uma falha de rede pode atrasar a leitura ou a gravação; a interface informa o erro e não apresenta uma mudança local como se estivesse salva. Ao transformar uma conta anônima em permanente, a preferência faz parte da migração vinculada ao dono.

Continue nos guias