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

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay