Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

voltaPosicaoInicialDoCarro() com variável da erro

Olá! Eu queria diminuir as linhas do código trocando

function voltaPosicaoInicialDoCarro() {
  if (xCarro1 < -40){
    xCarro1 = 600;
  }
  if (xCarro2 < -40){
    xCarro2 = 600;
  }
  if (xCarro3 < -40){
    xCarro3 = 600;
  }
}

com a chamada

  voltaPosicaoInicialDoCarro();

por

function voltaPosicaoInicialDoCarro(x) {
  if (x < -40){
    x = 600;
  }
}

com as chamadas

  voltaPosicaoInicialDoCarro(xCarro1);
  voltaPosicaoInicialDoCarro(xCarro2);
  voltaPosicaoInicialDoCarro(xCarro3);

mas não funcionou. Alguém sabe o por quê?

2 respostas
solução!

Oi Ana. Boa noite!

Por exemplo: Quando vc passa

voltaPosicaoInicialDoCarro(xCarro1);

Para a função

function voltaPosicaoInicialDoCarro(x) {
  if (x < -40){
    x = 600;
  }
}

Dentro da função, o x assume o valor de xCarro1, mas quando vc muda o valor de x para 600 muda apenas o valor de x dentro da função, ele não vai mudar o xCarro1.

O que você que fazer deve funcionar mais ou menos assim

xCarro1 = voltaPosicaoInicialDoCarro(xCarro1);

function voltaPosicaoInicialDoCarro(x) {
  if (x < -40){
    return 600;
  }
}

Assim vc vai chamara a função atribuindo o retorno dela ao valor do xCarro1, e na função vc coloca para retornar o 600

Testa aí, deve funcionar

Dando um spoiler, as próximas aulas vc vai ver como fazer um loop para varrer todos os carros e esses if vão sumir hehehe

Obrigada!