A aplicação-base para o trabalho é uma implementação em Javascript do tradicional jogo Snake. A codificação segue o Paradigma Funcional.
O jogo consiste de uma "cobra", controlada pelo usuário através do teclado, que se movimenta sem interrupção em quatro possíveis direções: Norte, Sul, Leste, Oeste. Existe uma "maçã" que aparece aleatoriamente na tela e, ao comê-la, a cobra cresce de tamanho.
Esta implementação apresenta duas versões de interface: (i) console e (ii) web (com HTML Canvas).
base.js
, snake.js
e cli.js
. Para executar o jogo, basta abrir um terminal
(pode ser no próprio VSCode) e digitar o comando node cli
+ ENTER.base.js
, snake.js
e web.js
(além, naturalmente, dos arquivos HTML e CSS para a interface: web.html
e web.css
). Para executar o jogo, basta clicar duas vezes no arquivo web.html
.Primeiramente, a equipe deverá decidir a versão que deseja trabalhar: console ou web.
Então, de posse dos arquivos respectivos, a equipe deverá cumprir 3 tarefas, conforme descrito a seguir.
A equipe deverá manter todos os arquivos de sua solução dentro de uma pasta chamada snake
e compactar esta pasta em snake.zip
. A seguir, um ÜNICO INTEGRANTE da equipe deverá realizar upload no CLASSROOM desse arquivo zip.
⚠️ Nunca é demais lembrar que, na implementação das novas dinâmicas de jogo, o uso de construções que firam o paradigma funcional estão sujeitas a penalizações severas (exceção é feita ao controle do Estado de jogo que, de fato, trata-se de um elemento mutável e, assim, deve permanecer).
TODAS AS EQUIPES devem fazer o upload do arquivo snake.zip
até às 14h59 do dia 24/05/2022.
⚠️ Envios de arquivo realizados diretamente por e-mail, sob qualquer justificativa, serão sumariamente IGNORADOS. Os envios devem ser feitos EXCLUSIVAMENTE pelo Google Classroom da turma.
Os dois arquivos compactados a seguir, disponíveis para download são soluções para o trabalho proposto. As soluções foram desenvolvidas por duas equipes diferentes de uma das turmas da disciplina de Programação Funcional do DCOMP/UFS no período 2021.2.
Recomenda-se tentar resolver o problema antes de visitar essas soluções. Ainda que tome-se conhecimento das soluções disponíveis, recomenda-se realizar modificações e testes nas variadas funções para experimentar e treinar alternativas interessantes.