DEV Community

jandersonsiqueira
jandersonsiqueira

Posted on

Recriando o jogo Freeway com boas práticas de programação

Image description

Introdução

O objetivo desse pequeno projeto é entender a importância de utilizar boas práticas de programação, na manutenção do código e a legibilidade do mesmo para outras pessoas. No decorrer do projeto utilizei a estrutura de lista para armazenagem das minhas variáveis e passagem por indíce, como também laços de repetição e decisão

Ao longo desse projeto, percebi que o arquivo principal (sketch.js) acabou ficando extenso demais e um pouco confuso para realizar manutenção. Primeiro objetivo foi fazer rodar, entretanto acabei me perdendo na medida que fui adicionando novos elementos para o projeto, resolvi então descentralizar a responsabilidade em códigos separados para cada objetivo. Com a utilização de listas consegui enxugar meu código, evitando chamar funções quase idênticas, após a refatoração do código ficou assim :)

Utilização de listas e laço de repetição

Nessa situação temos o arquivo carro.js onde tenho 3 objetos carro. Inicialmente sem a utilização da lista tive que criar uma variável x e y para cada objeto, uma função chamando cada objeto, mas porquê não passar tais parâmetros em uma lista ? Dessa forma consegui economizar algumas linhas do meu código e consequentemente espaço em memória.

Listas com as variáveis dos objetos.

let xCarros = [600, 600, 600, 600, 600, 600];
let yCarros = [40, 96, 150, 210, 270, 318];
let velocidadeCarros = [2, 2.5,  3.2, 5, 3.3, 2.3];
let comprimentoCarro = 50;
let alturaCarro = 40;
Enter fullscreen mode Exit fullscreen mode

Com a utilização do for consigo executar as variáveis de todos os meus objetos, onde estou incrementando para a minha variável i,enquanto a mesma for menor que a quantidade de elementos da variável imagemCarros e por fim verifico a veracidade da minha função passouTodaATela através do laço if, retornando verdadeiro meu objeto retorna para o início de sua posição x

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

Disponível em:
https://github.com/jandersonsiqueira/freeway-js

Top comments (0)