Trabalho

Trabalho: Jogo usando as receitas de projeto

(Vale 60% da nota, sendo 40% os exercícios)

PROJETO INICIAL NO GitHub (FAZER FORK): Link

INSTRUÇÕES PARA O DESENVOLVIMENTO DO PROJETO UTILIZANDO Git + GitHub: No README do repositório do projeto inicial: Link

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)
  • Arkanoid (veja Exemplos)
  • 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
  • Futebol estilo Pebolim.
  • Minhoquinha (Snake)
  • Sokoban (jogo de arrastar caixas). Ver Exemplos.
  • Jogo de plataforma Tela Fixa (estilo modo batalha do Super Mario Bros 3, LinkLink)
  • Outra ideia? Apresente ao professor!!

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 (12/10).
  2. Crie um repositório no GitHub 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  me informem qual desejam fazer o mais rápido possível. 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: 12/10

DATAS DE ENTREGAS DE CHECKPOINTS: A DEFINIR ENTREGA NO MOODLE.

DATA DE APRESENTAÇÃO DE ACOMPANHAMENTO (MÍNIMO 70% FEITO E FUNCIONANDO BOA PARTE DAS COISAS): 16/11 e 17/11

DATA DE ENTREGA E APRESENTAÇÃO FINAL: 07/12 e 08/12

  • 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:

  • 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