Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida quanto ao uso do IF e ELSE IF para os sentidos

Olá, Sozinha só consegui fazer a bolinha ir e na hora de voltar ela fica travada no 599-600.

Acredito que seja por conta de um pedaço do código que não compreendi direito:

  var x = 20;
  var sentido = 1;

  function vaiEvolta(){
    limpaTela();
    if(x>600){
      sentido = -1;
    }else if(x<0){
      sentido = 1;
    }
    desenhaCirculo(x,20,10);
    x=x+sentido;
  }

Nesta etapa damos ao X o valor de "20", quando faço o texte do "if" 20>600=false, dessa forma eu teria que ir para a próxima condição 20<0 que também é false.

Não entendi como eles funcionam nesta parte do código. Alguém consegueria me explicar fazendo um favor?

Apenas como explicação, o código que u estava tentando utilizar era esse:

  var x = 20;

  function vaiEvolta(){
  if(x<600){
  limpaTela();
  desenhaCirculo(x, 20, 10);
  x++;
  } else if(x>0){
  limpaTela();
  desenhaCirculo(x, 20, 10);
  x--;
  }
  }

  setInterval(vaiEvolta, 10);
1 resposta
solução!

Boa noite, Adriana! Como vai?

Vc estava indo bem na sua própria explicação referente ao código que vc disse não entender, mas faltou concluir a explicação! Mas antes de concluir a sua explicação, vamos ao código:

var x = 20;
var sentido = 1;

function vaiEvolta(){
    limpaTela();
    if(x>600){
      sentido = -1;
    }else if(x<0){
      sentido = 1;
    }
    desenhaCirculo(x,20,10);
    x=x+sentido;
}

Repare que como vc mesma disse, o x começa com o valor 20 e que nesse momento tanto o if como o else if não são executados pois suas condições x > 600 e x < 0, respectivamente, são falsas. Até aqui sua explicação foi perfeita!

Mas como eu disse, faltou continuar o raciocínio! Veja que logo em seguida a função desenhaCirculo() é invocada passando o valor atual do x e depois o valor de x é atualizado com o valor dele próprio mais o valor de sentido que nesse momento vale 1. Ou seja, o valor de x passará a ser 21!

Esse processo irá se repetir e a bolinha irá pra frente, até que x passe a valer 601! Nesse momento o if será ativado fazendo com que sentido passe a valer -1! Em seguida a função desenhaCirculo() será invocada para desenhar a bolinha e o x será atualizado com o valor atual dele que é 601 mais o valor de sentido que é -1, resultando para x o valor de 600.

Esse processo irá se repetir e a bolinha irá voltar, até que x passe a valer -1! Nesse momento o else if será ativado fazendo com que sentido passe a valer 1 novamente! Daí pra frente tudo se repetirá!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, minha aluna!