Trabalho / Jogo Tetris em Racket

Introdução

O objetivo deste trabalho é implementar um jogo Tetris em Racket.

O trabalho é em equipe de até duas pessoas. O compartilhamento de informações entre as equipes é permitido (e aconselhado), mas o compartilhamento de código não é permitido. Trabalhos que tenham porções significativas de código iguais, ou copiados da internet, serão anulados. Veja a resolução Nº 008/2007-COU para as possíveis sansões disciplinares. Cada membro da equipe deverá apresentar o trabalho individualmente para o professor.

Descrição

O Tetris é um jogo de quebra-cabeça onde tetraminós aleatórios ficam caindo em um campo de jogo. Os tetraminós são formas geométricas compostas de 4 quadrados. O objetivo é mover e rotacionar os tetraminós de maneira a completar linhas. Quando uma linha é completada ela desaparece, as camadas superiores descem e pontos são atribuídos ao jogador. Quando um certo número de linhas são completadas, o jogo entra em um novo nível onde os tetraminós caem mais rápido. Quando a pilha de tetraminós chega ao topo do campo, a partida termina.

Este trabalho consiste na implementação de um jogo tetris em Racket. O jogo implementado deve ser jogável, isto é, tem que ter a mecânica básica do tetris incluindo o término do jogo. A implementação do sistema de pontos e níveis é opcional e vale 1,0 ponto extra (junto com outros requisitos, veja a seção de avaliação).

Um projeto inicial com as definições das estruturas, tetraminós e algumas funções iniciais servirá como base para a implementação do trabalho.

A assinatura o propósito e o cabeçalho de alguns funções essenciais estão definidos. A equipe deve implementar estas funções e criar as funções auxiliares que achar necessário. Todas as funções definidas no escopo global devem ter o contrato, o propósito e os testes. Os testes não são necessários para funções locais, elas são testadas indiretamente quando a função onde elas foram definida é testada.

Desenvolvimento

Os arquivos iniciais de código e o script de envio estão disponíveis em um repositório git.

Para fazer o download do repositório é necessário ter o git instalado. No Ubuntu ou Debian o git pode ser instalado com o comando apt-get install git.

Para fazer o download, execute o comando

git clone http://malbarbo.pro.br/git/tetris-racket

Após a execução deste comando, um diretório chamado tetris-racket terá sido criado.

Você deve escrever o código do programa no arquivo src/racket/tetris.rkt. Os testes devem ser escritos no arquivo src/racket/testes.rkt.

Execução do jogo

Para executar o jogo, abra o arquivo src/racket/main.rkt no DrRacket e clique no botão Correr (ou Crtl-R).

Execução dos testes

Para executar os testes, abra o arquivo src/racket/testes.rkt no DrRacket e clique no botão Correr (ou Crtl-R).

Envio do trabalho

Para enviar o trabalho, execute o comando

make enviar

O script de envio criará um arquivo compactado com os arquivos a serem entregues para correção e enviará para a página do professor.

Após enviar o trabalho, o aluno deverá entrar na página da disciplina, imprimir e assinar o termo de autoria. O termo de autoria é um documento em que o aluno afirma que ele é o autor do código do trabalho que ele enviou e que portanto, não copiou parte significativa do programa de outra pessoa ou da internet. O termo de autoria assinado deve no próximo dia de aula após o termino do prazo para envio do trabalho.

Avaliação

O trabalho será avaliado de acordo com os critérios:

Atividade extra

Quem implementar o jogo tetris completo, com as seguintes características

Ganha 1,0 ponto extra na nota do trabalho.