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

Melhorando a eficiência do código, qual a melhor opção?

Eu tenho duas perguntas estritamente relacionadas a PROCESSAMENTO, sem me preocupar tanto com semântica ou estrutura de código:

  1. Pensando estritamente em ganho de eficiência (diminuir a demanda de processamento) o que seria melhor para o código do jogo: a. manter várias linhas para desenhar e movimentar os diversos carros (no exemplo da aula temos apenas 3 carros, mas se fosse uma quantidade maior ficaria impraticável um código tão extenso); ou b. criar um array de carros e iterar por ele quando quisesse desenhá-los e movimentá-los?

  2. Na aula o professor chamou a função voltaPosicaoInicialDoCarro dentro da função draw. Há algum ganho (ou perda) de processamento se eu chamar essa função dentro da função movimentaCarro (o resultado final é o mesmo, mas não sei onde é mais eficiente, se é que há diferença)?

Código dessas duas funções:

function movimentaCarro(){
  xCarro -= velocidadeCarro1;
  xCarro2 -= velocidadeCarro2;
  xCarro3 -= velocidadeCarro3;
// voltaPosicaoInicialDoCarro()   -> eu chamei  a função aqui e deu certo
}

function voltaPosicaoInicialDoCarro(){
  if (xCarro < -50){
    xCarro = 600
  }
  if (xCarro2 < -50){
    xCarro2 = 600
  }
  if (xCarro3 < -50){
    xCarro3 = 600
  }
}

P.S.: eu entendo que como o nosso código é pequeno a diferença é ínfima, mas a ideia serve também para códigos maiores...

1 resposta
solução!

Fala Daniel, tudo bem?

Como esse é um curso para aperfeiçoar a lógica de programação e aproximar a pessoa de uma linguagem de programação, no nosso caso o Javascript, nesse treinamento os pontos principais do curso são: sintaxe, funções, arrays, organização e modularização do código.

Em sua primeira dúvida, você descreveu exatamente o que vai acontecer no curso: criação de arrays, que acontece já na próxima aula

Em relação a eficiência do código com base no teste que realizou, não houve um ganho significativo conforme você mesmo disso.

Se quiser saber mais sobre eficiência na web, temos um super curso com foco total nisso.

Qualquer dúvida, conte com a Alura e bons estudos Daniel.

: )