3
respostas

Lógica de Programação: Laços e listas com JavaScript

Na parte 2 do curso, questão 05, na pergunta: "Para fazer com que os carros voltem a aparecer na tela e passem a rodovia mais uma vez, uma pessoa desenvolveu o seguinte código:

function voltaPosicaoInicialDoCarro(){ if (xCarro < 50){ xCarro = 600 } if (xCarro2 < 50){ xCarro2 = 600 } if (xCarro3 < 50){ xCarro3 = 600 } }COPIAR CÓDIGO Porém algo não saiu como a pessoa queria. Com base nessas informações podemos afirmar que:"

Se tem a resposta: "Os carros desaparecem antes de passar toda a tela.

Certo! Com base no código acima, se o valor da variável xCarro for menor que 50, ele volta para a posição inicial. O valor correto seria -50."

Não entendi o porque, uma vez que o sinal de menor seria sim o suficiente, desde que a dimensão do carro estivesse dentro de 50, para fazer com que o mesmo retornasse ao início e passasse novamente pela tela. Não compreendi a resposta da questão.

3 respostas

Boa noite, Wellington.

No código que foi trabalhado na aula, o compirmento do carro é igual a 50. Logo, quando xCarro < 50, quando o carro mal passar do valor 0 no eixo x, ele vai voltar para posição origem.

Espero ter ajudado ;)

Aqui fiz uma pequena ilustração que acho que vai ficar melhor a compreensão. Lembrando que os eixos x e y começam a contar no canto superior esquerdo. Assim também é feito com as formas geométricas. Então quando ele diz que xCarro < 50, quando ele estiver na posição 49 do eixo x, ele volta pra posição inicial.

Ilustração dos eixos x e y

Olá Wellington!

Entende-se que a parte visível da tela fica entre 0 e 500, certo? Qualquer posição a baixo de 0 e a cima de 500 significa que o objeto está além das bordas esquerda e direita.

A questão 05 define que os carros retornam ao ponto inicial ao atingir a posição menor que 50 (sem o "negativo" na frente).

O caminho que o carro vai fazer é o seguinte:

  1. Partir da posição inicial 600 caminhando para a esquerda em direção à borda 0;
  2. No meio do caminho, vai atingir a posição menor que 50 (exemplo: 49) acionando a condição if;
  3. E então, alternativa D: Desaparecer antes de passar toda a tela.

O comportamento ideal seria o carro retornar a posição inicial somente após ultrapassar a borda esquerda da tela. Para isso, considerando a largura do carro como 40, ele deveria sumir ao atingir a posição menor que -50 (exemplo: -51), e não menor que 50.

Espero ter ajudado!