3
respostas

duvida na function passouTodaATela

Não entendi o pq da função passouTodaATela no parâmetro ser xCarro e nao xCarros. E o Valor que ele retorna é V ou F?

function voltaPosicaoInicialDoCarro(){
  for (let i = 0; i < imagemCarros.length; i += 1){
    if (passouTodaATela(xCarros[i])){
      xCarros[i] = 600;
    }
  }
}

function passouTodaATela(xCarro){
  return xCarro < -50;
}
3 respostas

Tenho a mesma dúvida e não entendi como funcionou, já que esta variável não está no código.

Olá Adriano, a função passouTodaATela usa como parâmetro uma variável qualquer (sendo ela x, y, z ou uma palavra qualquer) , que nesse caso é o "xCarro", portanto, se sua variável fosse somente x, o código também rodaria! Porque o que importa é você declarar a variavel correta ( que no nosso caso é xCarroS, que guarda o valor de 600 do eixo X) dentro do "if (passouTodaATela(variavelCorreta[i]))" assim como ele/você fez na linha logo abaixo, quando digitou " xCarros[i] = 600;". Com uma variável com o valor correto, a function passouTodaATela conseque aplicar o "return variavelQualquer < -50" e como você vai usar "xCarroS" o return vai buscar o valor que é 600 e então aplicar "return xCarroS < -50" (visto que xCarroS guarda o valor de x = 600) para a function passouTodaATela, fazendo com que os carros voltem a posição inicial rodando o código normalmente!

Espero ter ajudado, qualquer coisa ou dúvida posso tentar explicar melhor! Abraço e bons estudo irmão!

Boa tarde, Adriano! A linguagem Javascript permite uma maior flexibilidade ao declarar variáveis, parâmetros, enfim. Nesse caso, você tem a liberdade de declarar na função passouTodaATela como desejar o parâmetro, pois a mesma se tornará uma variável da função em questão. Isso levando-se em conta que quando você "chamar" a função passouTodaATela, seja passada de forma correta o valor. Se houvesse mais valores, eles poderiam ser passados após o uso da vírgula. Em suma, o nome declarado de xCarro, poderia ser declarado como a, b, c... . Compartilho como eu fiz:

function voltaPosicaoInicial(){
  for(let i = 0; i < imagemCarros.length; i++){
   if(passouTodaTela(xCarros[i])){
    xCarros[i] = 600
   }
 }
}

function passouTodaTela(x){
  return x < - 50
}

E nesse caso, sempre que um dos carrinhos atravessar a tela, será enviado o valor de True (Verdadeiro). Enquanto não passar, estará enviando o valor False (Falso).

Um grande abraço e boa sorte nos estudos!