Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvidas nos níveis

Olá,

Estou com uma dúvida com relação ao número máximo dos níveis. Meu código a princípio está ok, funcionando com as dificuldades e níveis, mas se eu ficar clicando no botão UP, ele vai subindo o nível sem parar, mesmo que passe de 10, 20, 30 e assim por diante, nesse caso ele deveria parar em cada nível? Por exemplo, tarefa com dificuldade 1 tem nível 10, ele deveria deixar de clicar no 10 ou isso não foi mostrado ainda? Pergunto porque parece que no vídeo o instrutor clica mais vezes e ele fica certinho.

Att, Alvaro

2 respostas

Olá, Alvaro.

Tudo bem?

Você está se referindo ao botão UP que aumenta o nível da tarefa, correto? No exemplo do curso, o botão UP aumenta o nível da tarefa indefinidamente, sem um limite máximo. Isso foi feito para simplificar o exemplo, mas na prática, você provavelmente iria querer limitar o nível máximo que uma tarefa pode alcançar.

Para fazer isso, você pode adicionar uma verificação no método que aumenta o nível da tarefa. Aqui está um exemplo de como você poderia fazer isso:

void aumentarNivel() {
  if (nivel < 10) {
    setState(() {
      nivel++;
    });
  }
}

Neste exemplo, o método aumentarNivel() só aumentará o nível se ele for menor que 10. Se o nível já for 10, o método não fará nada.

Isso deve resolver o problema que você está enfrentando. Lembre-se, este é apenas um exemplo e você pode precisar ajustá-lo para se adequar ao seu código específico.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.

solução!

Oi Renan,

Acabei fazendo um pouco diferente, mas sua sugestão acabou me fazendo abrir a mente rsrs, fiz dessa forma:

Criei a função stopLevel:

int validator = 0;

  void stopLevel() {
    if (widget.dificuldade == 1) {
      validator = 10;
    } else if (widget.dificuldade == 2) {
      validator = 20;
    } else if (widget.dificuldade == 3) {
      validator = 30;
    } else if (widget.dificuldade == 4) {
      validator = 40;
    } else if (widget.dificuldade == 5) {
      validator = 50;
    }
  }

Depois chamei ela no ElevatedButton:

onPressed: () {
                              setState(() {
                                stopLevel();
                                if (nivel == validator) {
                                  nivel == 0;
                                } else
                                  {
                                    nivel++;
                                  }
                              });
                            }

Não sei se, pelas boas práticas está correto, mas funcionou.

Abs, Alvaro