Olá, talvez não tenha resolvido da maneira mais otimizada, mas fiquei bem satisfeito de ter conseguido.
Comecei fazendo os ajustes das cores, que deveriam mudar conforme a evolução do individuo na atividade:
decoration: BoxDecoration(
color: (nivel / (widget.dificuldade * 10) > 6)
? Colors.black
: (nivel / (widget.dificuldade * 10) > 5)
? Colors.purple[400]
: (nivel / (widget.dificuldade * 10) > 4)
? Colors.red
: (nivel / (widget.dificuldade * 10) > 3)
? Colors.amber[800]
: (nivel / (widget.dificuldade * 10) > 2)
? Colors.yellow[600]
: (nivel / (widget.dificuldade * 10) > 1)
? Colors.green
: Colors.blue,
borderRadius: BorderRadius.circular(6),
),
Depois disso, quando fui testar, achei estranho q a barrinha de progressão não mudava mais de cor. Ai que me toquei que era outro ponto a ser alterado.
Então adicionei uma nova variável para progressão da barra (progresscount) e adicionei o incremento ao ElevatedButton. Tomando o cuidado para reinicia-lo de maneira diferente dependendo da dificuldade da atividade.
ElevatedButton(
onPressed: () {
setState(() {
nivel++;
progresscount++;
progresscount == (widget.dificuldade*10+1) ? progresscount = 1 : progresscount;
});
},
Por fim, adicionei a nova variável ao controle no indicador de progresso.
child: LinearProgressIndicator(
color: Colors.white,
value: (widget.dificuldade == 0)
? 1
: (progresscount / widget.dificuldade) / 10,
),
Aproveitando pra deixar o feedback, foi um curso excelente. Uma coisa que sempre sentia falta nos cursos, era que os exercícios em geral eram pra fazer o que foi feito na aula, e não uma atividade à parte. E vendo isso nesse curso tornou ele muito mais gratificante e desafiador de fazer.