O código representa a implementação de um jogo Snake em JavaScript. O jogo foi desenvolvido utilizando a estrutura de funções anônimas autoinvocadas e tem como objetivo criar uma interface gráfica onde o jogador controla uma cobra que deve comer frutas para crescer e acumular pontos.
O código utiliza uma função anônima autoinvocada para encapsular todo o jogo em um escopo isolado. Essa técnica é comumente utilizada para evitar a poluição do escopo global e garantir que as variáveis e funções do jogo não entrem em conflito com outras bibliotecas ou códigos JavaScript.
O jogo faz uso da funcionalidade de desenho do HTML5 através do elemento <canvas>
. Através do getContext('2d')
, é obtido o contexto de desenho no qual são realizados os desenhos das entidades do jogo, como a cobra, a fruta e o cenário.
Para permitir a interação do jogador com o jogo, são utilizados eventos de teclado para capturar as teclas pressionadas pelo usuário. As teclas das setas direcionais são utilizadas para controlar o movimento da cobra (esquerda, direita, cima e baixo).
O jogo implementa um loop de jogo utilizando setInterval()
, que é uma função JavaScript que executa um trecho de código repetidamente em intervalos regulares de tempo. Isso permite que a cobra se mova e interaja com o cenário em tempo real.
O tamanho do cenário é definido por uma grade, e a cobra se move de célula em célula. O tamanho da grade é controlado pela variável tileCount
, que pode ser ajustada para tornar o jogo mais fácil ou mais difícil.
O jogador ganha pontos ao comer a fruta, e a pontuação máxima é armazenada para que o jogador possa acompanhar seu recorde. Além disso, o jogador é recompensado com pontos por cada movimento bem-sucedido, enquanto recebe uma penalidade por colidir com a parede ou com o próprio corpo da cobra.
O jogo oferece algumas configurações que podem ser ajustadas para personalizar a experiência de jogo. É possível controlar se a cobra pode atravessar as paredes (walls
), ajustar o tamanho da grade (tileCount
) e ativar ou desativar o crescimento da cauda (fixedTail
) ao comer a fruta.
- O jogo começa automaticamente após o carregamento da página.
- Use as setas direcionais do teclado (cima, baixo, esquerda e direita) para mover a cobra.
- Tente comer a fruta para crescer e ganhar pontos.
- Evite colidir com a parede ou com o corpo da cobra para não reiniciar o jogo.
- Pressione a tecla "Espaço" para pausar o jogo.
- Pressione a tecla "Esc" para reiniciar o jogo.
Snake.setup.keyboard(true)
: Habilita o controle da cobra pelo teclado.Snake.setup.fixedTail(false)
: Permite que a cauda cresça ao comer a fruta.Snake.setup.wall(false)
: Permite que a cobra atravesse as paredes.Snake.setup.tileCount(size)
: Ajusta o tamanho da grade (número de células na horizontal e vertical).
Contribuições são bem-vindas! Sinta-se à vontade para enviar sugestões, correções de bugs ou melhorias através de "issues" ou "pull requests".
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.