1
resposta

Alternativa para o uso da função "passouTodaATela"

Observando o que o professor fazia enquanto programava, tive uma intuição que aparentemente retornou resultados satisfatórios. O código montado pelo professor utiliza uma função a mais, a função "passouTodaATela", como anexado abaixo:

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

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

Entretanto, decidi montar o meu código de uma outra maneira, excluindo a função adicional e mantendo apenas a função "voltaPosicaoInicialDoCarro". Ao fazer isso, pude notar que a segunda função montada pelo professor para complementar a primeira podia ser deixada de lado simplesmente pelo fato de que, na função "voltaPosicaoInicialDoCarro" o índice i** já dá à condicional **if os três parâmetros para ela executar, não sendo necessário o comando return:

function voltaPosiçãoInicial(){
  for (let i = 0; i < imagemCarros.length; i = i + 1){
  if (xCarros[i] < -70){
     xCarros[i] = 500;
    }
  }
}

Para evitar confusões, eu deixo destacado que não utilizei laços para a minha função movimentoCarro, uma vez que cada índice possui uma velocidade específica, não sendo, necessariamente, em ordem crescente, como no caso do professor. Pode ser que essa variação que pude implementar no meu código seja diretamente relacionado a isso, algo que ainda não pude verificar, mas deixo aqui a minha "descoberta" e peço ajuda para esclarecer essas questões.

function movimentoCarro(){
  xCarros[0] -= 4;
  xCarros[1] -= 5;
  xCarros[2] -= 3;
}
1 resposta

Igor, boa tarde! Tudo bem?

Também percebi essa situação, em meu intendimento a function passouTodaATela não se faz necessária para a execução do código, pelo menos não até o momento. (talvez mais para frente possa se mostrar extremamente importante...)

Abaixo encaminho trecho do meu código da function voltaPosicaoInicialDoCarro

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

De toda forma, estou adorando o curso e conseguindo absorver conceitos que antes eu não conseguia.

Quem quiser conversar sobre os códigos e o curso, segue meu contato de whats: (48) 99946-9242

Um bom curso à todos e bons estudos! :D