Mudanças entre as edições de "Projeto POO - 2009.2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 54: Linha 54:
 
  |-
 
  |-
 
  |Marcelo || Não definido || Ainda não disponível || Ainda não disponível || Ainda não disponível
 
  |Marcelo || Não definido || Ainda não disponível || Ainda não disponível || Ainda não disponível
 +
|-
 +
|Christiane || Não definido || Ainda não disponível || Ainda não disponível || Ainda não disponível
 +
|-
 +
|Juliana & Thiago || Não definido || Ainda não disponível || Ainda não disponível || Ainda não disponível
 
  |-
 
  |-
 
  |}
 
  |}

Edição das 08h46min de 5 de novembro de 2009

Neste semestre são propostos dois temas para o desenvolvimento do projeto final da disciplina de Programação Orientada a Objetos. Os trabalhos poderão ser desenvolvidos em dupla e deverão ser apresentados em sala nos dias 09 e 10 de dezembro de 2009.

Projeto final 1 - Pintor Vetorial J2D

Desenvolver um aplicativo gráfico em Java que permita desenhar formas 2D. O aplicativo deverá permitir ao usuário:

  • Desenhar diferentes formas geométricas (retângulo, linha, elipse, etc);
  • Desenhar formas com uma cor de preenchimento;
  • Apagar as formas desenhadas;
  • Limpar a tela, apagando todas as formas desenhadas;
  • Preencher com uma cor de fundo as formas já desenhadas;
  • Alterar cor da linha e a cor de preenchimento;
  • Salvar a tela atual em um arquivo de formato próprio;
  • Abrir um arquivo de formato próprio e desenhar na tela as formas lá armazenadas;

Um esqueleto funcional do Pintor Vetorial J2D está disponibilizado aqui nesta página. O código está comentado e isto servirá de documentação para o desenvolvimento do trabalho. Use este esqueleto para desenvolver este projeto final, porém será necessário modificá-lo para atender os requisitos apresentados na seção Requisitos.

Requisitos

  • Cada forma geométrica deverá ter sua própria classe e esta deverá "saber" como se desenhar. Ou seja, deverá conter no mínimo o método desenhar e este irá fazer com que a forma seja desenhada na área de trabalho;
  • É obrigatório o uso dos conceitos de Herança e Polimorfismo. Os mesmos serão necessários para lidar com as diferentes formas geométricas;
  • Todos os métodos deverão ser comentados, de acordo com o padrão do JavaDOC, e dentro dos métodos é necessário comentar cada parte de seu funcionamento chave;
  • Todo o código deverá estar sob uma licença de software (Ex: proprietário, domínio público, software livre);
    • Indique os motivos para sua escolha.

Captura de tela e código fonte

Pintor Vetorial J2D

Exemplo: java -jar PintorVetorialJ2D.jar

Soluções dos alunos

Grupo Licença Adotada Requisitos contemplados Requisitos não contemplados Código Fonte
Marcelo Não definido Ainda não disponível Ainda não disponível Ainda não disponível
Christiane Não definido Ainda não disponível Ainda não disponível Ainda não disponível
Juliana & Thiago Não definido Ainda não disponível Ainda não disponível Ainda não disponível

Projeto final 2 - Império J2D

Desenvolver um jogo em Java usando somente as APIs do Java 2D. O jogo consiste em um personagem que deve destruir os inimigos que surgem em seu caminho. O jogo a ser concebido deve respeitar a seguinte especificação:

  • O jogo deverá prover 3 personagens que poderão ser escolhidos pelo usuário ao iniciar o jogo (Duke, Tux ou Puffy);
  • Todo personagem possui um nível de vida e um nível de poder iniciado em 100. O jogo termina se o nível de vida do personagem chegar a 0;
  • Todos os personagens deverão possuir a seguinte habilidade:
    • Canhão de plasma
      • Munição infinita que retira até 10 pontos da vida do inimigo;
      • No máximo até cinco tiros na tela, após este limite um novo tiro só poderá ser liberado quando um tiro anterior sair dos limites da tela ou atingir um inimigo;
  • Cada personagem poderá possuir até duas habilidades específicas da lista a seguir:
    • Escudo de força
      • Protege o personagem por até 5 segundos contra os disparos e contatos dos inimigos;
      • Requer 50 de poder;
    • Bomba aniquiladora
      • Destrói todos os inimigos (e seus respectivos tiros) que estiverem na tela;
      • Requer 100 de poder;
    • Revitalizador
      • Ao ser acionado transfere todo o nível do poder para a vida;
  • O usuário poderá controlar seu personagem através das teclas de navegação (setas direcionais) ou através de movimentos com o mouse. O personagem poderá ir para cima, baixo, esquerda e direita. O personagem poderá atirar contra os inimigos através da tecla de espaço ou através do botão esquerdo do mouse;
  • Todos os inimigos nascem na parte direita da tela e se deslocam até a parte esquerda da tela, fazendo movimentos para cima e para baixo (semelhante àquele do jogo SpaceInvader);
  • Cada inimigo nasce com um nível de vida de 10 a 100, escolhido aleatoriamente;
  • Cada inimigo pode disparar até 2 tiros, após isto os próximos só serão liberados se algum tiro anterior atingir o personagem do jogador ou quando sair dos limites da tela
  • Ao ser atingido por um tiro o personagem do jogador perde 10 pontos da vida e ao ser tocado por um inimigo o personagem perde 50 pontos e o inimigo morre;
  • Podem existir de 1 até 5 inimigos por vez na tela;
  • Todos os inimigos movimentam-se com uma mesma velocidade;
  • Cada inimigo morto resulta em um ponto para o jogador e aumenta seu nível de poder em 5. Os inimigos tornam-se cada vez mais rápidos sempre que o placar do jogador for múltiplo de 6.

Um esqueleto funcional do Império J2D está disponibilizado aqui nesta página. O código está comentado e isto servirá de documentação para o desenvolvimento do trabalho. Use este esqueleto para desenvolver este projeto final, porém será necessário modificá-lo para atender os requisitos apresentados na seção Requisitos.

Requisitos

  • Cada personagem deverá ter sua própria classe e esta deverá implementar as duas habilidades que foram escolhidas por você;
  • Os inimigos terão sua própria classe;
  • É obrigatório o uso dos conceitos de Herança e Polimorfismo além de Interfaces Java. Os mesmos serão necessários para lidar com os diferentes personagens e suas habilidades, compartilhadas e específicas
  • Todos os métodos deverão ser comentados, de acordo com o padrão do JavaDOC, e dentro dos métodos é necessário comentar cada parte de seu funcionamento chave;
  • Todo o código deverá estar sob uma licença de software (Ex: proprietário, domínio público, software livre);
    • Indique os motivos para sua escolha.

Captura de tela e código fonte

Imperio J2D

Exemplo: java -jar ImperioJ2D.jar

Soluções dos alunos

Grupo Licença Adotada Requisitos contemplados Requisitos não contemplados Código Fonte
Fernando Simão & Fernando Marcelino Não definido Ainda não disponível Ainda não disponível Ainda não disponível
André & Kalebe Não definido Ainda não disponível Ainda não disponível Ainda não disponível
Adriano & Mayco Não definido Ainda não disponível Ainda não disponível Ainda não disponível
Daniel & Ivon Não definido Ainda não disponível Ainda não disponível Ainda não disponível
Eduardo & Raphael Não definido Ainda não disponível Ainda não disponível Ainda não disponível
Claudir & Paulo Não definido Ainda não disponível Ainda não disponível Ainda não disponível
Sant Clear Não definido Ainda não disponível Ainda não disponível Ainda não disponível
Guilherme Não definido Ainda não disponível Ainda não disponível Ainda não disponível

Ponteiros interessantes