Trabalho

Trabalho: Jogo em Racket/Scheme

(Vale 70% da nota, sendo 30% os exercícios)

PROJETO INICIAL NO Bitbucket (FAZER FORK):  https://bitbucket.org/helioh2/trabalho-racket

INSTRUÇÕES PARA O DESENVOLVIMENTO DO PROJETO UTILIZANDO Mercurial + Bitbucket

Vocês podem fazer em duplas um dentre os possíveis jogos:

  • Space Invaders
    • Permitir múltiplos tiros seguidos no canhão
  • Corrida (estilo Enduro).
    • Especificações:
      • Velocidade aumenta de acordo com a distância percorrida pelo carro;
      • Carros adversários aparecem a uma taxa constante na tela (ou seja, podem ter vários carros inimigos na tela). Ex: carros novos sempre aparecem a cada 0,5 segundo
      • Bateu perde uma vida, mas continua com velocidade diminuída. O carro terá três vidas e depois de acabadas é Game Over.
      • Podem aparecer vidas no meio da estrada (a cada 10 segundos, por exemplo)
  • PacMan
    • Especificações:
      • Pode ser feito com mapa reduzido (mostrar ao professor o desenho do mapa para ajustes)
      • Fantasmas não precisam ter algum tipo de inteligência (se tiver ganha nota extra). Façam eles ficarem andando seguindo algum padrão (pra frente/trás, por exemplo) em diferentes corredores.
      • Bolinhas dão pontos, e bolas maiores fazem os fantasmas ficarem assustados, permitindo comê-los
      • Quando fantasma é comido, fazer voltar para uma posição inicial
  • Sapinho que atravessa a rua (Frogger)
    • Com diferentes fases e níveis de dificuldade
  • Arkanoid
  • Flappy Bird
    • Pode ser com fase menor, mas acrescente obstáculos móveis (inimigos)
    • Física deve ser parecida com o original (com aceleração na queda e o efeito da batida da asa)
  • Bomberman
    • Versão simplificada (mapa menor, inimigos sem inteligência)
    • Inserir inimigos que machucam ao colidir, mas que apenas andam para frente e para trás em um corredor
    • Matar os inimigos colocando as bombas
  • Jogo de tiro/luta com inimigos que aparecem na tela
  • Xadrez
    • Com animação de movimentos.
  • Futebol estilo Pebolim.
  • Outra ideia? Apresente ao professor!!

Para quem quiser elaborar um jogo mais elaborado e que envolva matrizes, podem tentar os seguintes jogos (apresentar ideia ao professor antes). Quem fizer um dos seguintes jogos ganhará nota extra (por exemplo, se nota final for 8,0, poderá ficar com 9,0) :

  • Tetris (obs: quem quiser fazer este terá acesso a um template inicial do programa)
  • Minhoquinha (Snake)
  • Sokoban

INSTRUÇÕES:

  1. Primeira parte:
    1. Escolha um jogo e apresente a ideia ao professor;
    2. Escreva uma especificação mais detalhada (o que o jogo vai ter?)
    3. Faça a análise de domínio inicial utilizando a receita Como Projetar Mundos
    4. Entregue ao professor a especificação e análise de domínio na data definida (abaixo).
  2. Crie um repositório Mercurial no Bitbucket para o seu projeto ou faça um fork do projeto inicial fornecido pelo professor. Todo o trabalho deverá ser feito utilizando o controle de versão. A utilização desta ferramenta contará pontos na avaliação do trabalho.
  3. Mãos ao código. Escreva o código seguindo as receitas de projeto, com base na análise de domínio realizada.
  4. Apresentação de acompanhamento: em data definida (abaixo), deverá apresentar uma versão em funcionamento básica (no mínimo 70% feito), mas ainda em desenvolvimento.
  5. Entrega e apresentação final

OBS: Cada dupla deverá desenvolver um jogo diferente! Portanto peço que aqueles que tem preferência por um jogo específico já me informem qual desejam fazer. Acima tem sugestões de possíveis jogos que vocês podem fazer com algumas especificações mínimas (o jogo não poderá ser nem muito simples nem muito complexo, por isso deverão me apresentar a especificação e análise de domínio com antecedência).

DATAS:

DATA DA ENTREGA DA ESPECIFICAÇÃO E ANÁLISE DE DOMÍNIO: 13/11/2015

DATA DE APRESENTAÇÃO DE ACOMPANHAMENTO (MÍNIMO 70% FEITO E FUNCIONANDO BOA PARTE DAS COISAS): 15/12 e 18/12/2015

DATA DE ENTREGA E APRESENTAÇÃO FINAL: Janeiro

  • A proposta deve consistir em um documento explicando o objetivo do jogo, os elementos da tela, assim como uma análise de domínio inicial (conforme receita Como Projetar Mundos)
  • Na apresentação individual, cada aluno deverá explicar ao professor como o programa foi desenvolvido e responder questionamentos do professor sobre o programa.

CRITÉRIOS DE AVALIAÇÃO:

  • Clareza lógica: a lógica nos programas deve ser clara.
  • Utilização das receitas de projeto: as funções devem ser escritas utilizando as receitas de projeto. Todas as funções devem ter testes.
  • Corretude e completude: os programas têm quer passar em todos os testes (e os testes devem estar corretos e com 100% de cobertura de código – exceto para função main / big-bang, que não precisa fazer teste unitário).
  • Boas práticas de programação: o código deve estar bem escrito e organizado; os recursos da linguagem devem ser usados corretamente.
  • Utilização do controle de versão: o histórico de commits será avaliado pelo professor a fim de verificar se o controle de versão foi utilizado corretamente.
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s