Depuração prática, passo a passo

Do desafio ao progresso: XP, skills e conquistas

O fluxo é fácil de entender quando cada etapa tem uma função e o XP é concedido uma vez.

DoesItHold Editorial · · revisado em · progression-pipeline-001

Resposta direta

Infira as skills, conceda o valor da dificuldade uma vez a cada uma, atualize a curva e depois avalie dificuldade, sequência diária e conquistas como efeitos separados.

Um desafio de dificuldade 3 concede 140 XP. Uma skill no nível 1 precisa de 100 XP, então avança ao nível 2 com 40 XP rumo ao marco round(100 × 2^1.5) = 283.

O mesmo resultado pode avançar o primeiro evento válido da sequência no dia local e liberar um marco. Nenhuma ação concede os 140 XP outra vez, e xpReward permanece um campo legado não aplicado.

Rastreie a falha
  1. 01
    Resolverum resultado aceito
  2. 02
    Inferiridentificar skills relevantes
  3. 03
    Premiaraplicar o XP uma vez
  4. 04
    Adaptarescolher a dificuldade separadamente
Uma solução aceita gera um prêmio de XP por skill inferida; a adaptação escolhe a próxima dificuldade sem premiar novamente.

Exemplo mínimo

Deslize para ver todo o código

Com defeito
awardXp(skill, 140)
adjustDifficulty(skill, xpGained: 140)
Corrigido
awardXpOnce(skill, 140)
adjustDifficulty(skill, solved: true)

O que muda: Uma solução de dificuldade 3 soma 140 XP a cada skill inferida exatamente uma vez; sequência e conquistas observam o resultado sem duplicá-lo.

Método de depuração

Rastreie um identificador de solução por inferência, prêmio idempotente, avanço de nível, escolha de dificuldade e checagem de marcos.

  1. Verifique o mapa 60/100/140/180/220.
  2. Envie uma solução e confirme uma mudança por skill inferida.
  3. Chegue ao nível 5 e confirme progresso de 100%.
  4. Confirme que o ranking semanal é ordenado somente por solved_count finalizado pelo servidor.
  5. Verifique que alterar progresso no cliente não muda a posição pública.

Correção incorreta comum

Conceder XP dentro da dificuldade adaptativa duplica a skill principal. Tratar solved_count semanal como XP dá dois significados incompatíveis ao mesmo número.

Limites e casos-limite

Inferência de skill é uma classificação do produto, não uma análise completa do aprendizado. A sincronização ocorre quando possível, e uma mudança local pendente pode demorar a aparecer em outro dispositivo.

Fontes