1
resposta

[Projeto] Desafio cores dinânmicas.

Olá, tudo bem? Desafio concluído! Utilizei uma lista contendo todas as cores e incrementei uma variável para alternar entre elas. Quando o nível máximo da tarefa é atingido, ele é substituído pela indicação de "Maestria" na tarefa.

Gif mostrando a progressão das tarefas

Variáveis utilizadas.

int nivel = 1;
int maestria = 0;
String mensagem = "Nível 1";
  List<Color> cores = [
    Colors.blue,
    Colors.green,
    Colors.yellow,
    Colors.orange,
    Colors.red,
    Colors.purple,
    Colors.black,
  ];

Modificando as cores das tarefas.

Container(
            width: double.infinity,
            decoration: BoxDecoration(
                color: cores[maestria], borderRadius: BorderRadius.circular(4)),
            height: 140,
          ),

Logica implementada.

onPressed: () {
                          setState(() {
                            if (maestria == cores.length - 1 &&
                                nivel >= widget.dificuldade * 10) {
                              mensagem = 'Maestria!';
                              ScaffoldMessenger.of(context)
                                  .clearSnackBars(); // Limpa outros SnackBars
                              ScaffoldMessenger.of(context).showSnackBar(
                                SnackBar(
                                  backgroundColor: cores[maestria],
                                  content: Text(
                                    mensagem,
                                    style: const TextStyle(color: Colors.white),
                                  ),
                                  duration: const Duration(seconds: 3),
                                  behavior: SnackBarBehavior.fixed,
                                  padding: const EdgeInsets.all(16),
                                ),
                              );
                              return; // Impede de continuar
                            }

                            if ((nivel / widget.dificuldade) % 10 == 0 &&
                                nivel == widget.dificuldade * 10) {
                              maestria++;
                              nivel = 0; // Reinicia o nível
                            }

                            nivel++;
                            mensagem = 'Nível $nivel';
                          });
                        },
1 resposta

Olá, Matheus, como vai?

Parabéns por ter concluído o desafio e compartilhado sua implementação! Sua solução está bem estruturada, especialmente no uso da lista de cores para gerenciar os diferentes níveis de maestria e na lógica de incremento. A utilização do ScaffoldMessenger para exibir mensagens também está bem alinhada às boas práticas.

Sua lógica está bem elaborada e demonstra domínio dos conceitos trabalhados no curso. Continue compartilhando seus projetos e explorando novas possibilidades.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado