3
respostas

[Dúvida] Não entendi o exercício

Nenhuma alternativa faz o que se pede, porém o que mais se aproxima seria a C que é considerada errado;

Alternativa A so preenche bolinha azul, Alternativa B só preenche bolinha azul Alternativa C o sistema considera errada, porém é a que mais se aproxima, pois para cada clique, muda a cor até chegar a esabilizar na azul, mas apresenta as 3 cores

TEXTO: Como essa escolha será feita? A cada clique do botão DIREITO do mouse, a cor padrão, que é blue, deverá se tornar red. Se o usuário clicar mais uma vez com o botão DIREITO, a cor escolhida deverá ser green, nessa ordem. Por fim, se clicarmos novamente, voltamos para a cor blue e repetimos a ordem de seleção de cores. Obs: com o botão ESQUERDO faremos os cliques para as bolinhas aparecerem. Combine os diversos aprendizados que você conquistou até agora nesse exercício e marque a alternativa que mais se aproxima com a proposta de implementação

3 respostas

Diferença da Alternativa B para a C

B e C trocam as cores incrementando indiceCorAtual++

C - quando chega o último elemento, a troca de cor para de funcionar

B quando chega o último elemento, o indiceCorAtual = 0 volta para o início, e a troca de cor continua

Olá, a alternativa B é a correta pois apresenta o if dentro da function MudaCor:

function mudaCor() {
    indiceCorAtual++;
    if (indiceCorAtual >= cores.length) {
      indiceCorAtual = 0; // volta para a primeira cor, azul
    }
    return false; // para não exibir o menu padrão do canvas
  }

Nesse código acontece o seguinte:

Se o indice cor atual que é 0 for maior ou igual a 2 (que é a quantidade que tem dentro da array cores) faça indice cor atual igual a 0. Portanto quando o botão esquerdo do mouse for clicado vai soma mais 1 ao indice cor atual através do ++ e quando ele chegar 2 que é a quantidade que tem dentro da array cores ele vai voltar a 0 e repetir sempre que chegar a 2.

O que o texto fala é exatamente isso que acontece na opção B.

o cores.length não é igual a 3? não entendi por que é >= e não apenas = nessa parte:

if (indiceCorAtual >= cores.length)