Mudanças entre as edições de "Projeto POO - 2009.2"
(13 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 52: | Linha 52: | ||
!Requisitos não contemplados | !Requisitos não contemplados | ||
!Código Fonte | !Código Fonte | ||
+ | !Jar Executável | ||
+ | <!-- |- | ||
+ | |Marcelo || Não definido || Ainda não disponível || 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 || Ainda não disponível --> |
+ | |- | ||
+ | |Juliana & Thiago || [http://pt.wikipedia.org/wiki/Beerware Beerware] || Todos || Nenhum || [[Media:JulianaThiago-PintorJ2D.zip | Código fonte - Projeto Netbeans]] || [[Media:JulianaThiago-PintorJ2D.jar | Código compilado]] | ||
|- | |- | ||
|} | |} | ||
Linha 122: | Linha 127: | ||
!Requisitos contemplados | !Requisitos contemplados | ||
!Requisitos não contemplados | !Requisitos não contemplados | ||
− | !Código Fonte | + | !Código Fonte - Netbeans |
+ | !Jar Executável | ||
+ | |- | ||
+ | |Fernando Simão || [http://pt.wikipedia.org/wiki/GNU_General_Public_License GPL] || | ||
+ | Todos os requisitos foram contemplados e ainda foram acrescentados: | ||
+ | * '''Versão final''' | ||
+ | ** O '''chefão''' aparece quando o jogador fizer 50 pontos | ||
+ | ** Balões com poderes que servem para | ||
+ | *** Aumentar a velocidade do jogador | ||
+ | *** Aumentar o número de tiros do jogador | ||
+ | *** Pegar canhões adicionais (até 3 canhões) para o jogador | ||
+ | * '''Versão Depuração''' | ||
+ | ** Um painel de informações para visualizar as variáveis de controle do jogo | ||
+ | || Nenhum || | ||
+ | * [[Media:Imperio2D - Versão Final.rar | Versão Final]] | ||
+ | * [[Media:Imperio2D - Versão Final + Depuração.rar | Versão com informações para depuração ]] | ||
+ | * '''Teclas para jogar''' | ||
+ | ** C - atira | ||
+ | ** E - escudo | ||
+ | ** R - revitalizador | ||
+ | ** B - bomba aniquiladora | ||
+ | || | ||
+ | * [[Media:Imperio2D - Versão Final.jar | Versão Final Compilado]] | ||
+ | * [[Media:Imperio2D - Versão Final + Depuração.jar | Versão Final Com Depuração]] | ||
|- | |- | ||
− | + | <!-- |André & Kalebe || Não definido || Ainda não disponível || 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 || Ainda não disponível --> |
|- | |- | ||
− | | | + | |Daniel & Ivon || [http://pt.wikipedia.org/wiki/Beerware Beerware] || Todos || Nenhum || |
+ | *[[Media:Daniel-Ivon-ImperioJ2D.zip | Código fonte]] | ||
+ | * '''Teclas para jogar''' | ||
+ | ** Espaço - atira | ||
+ | ** E - escudo | ||
+ | ** R - revitalizador | ||
+ | ** B - bomba aniquiladora | ||
+ | || [[Media:Daniel-Ivon-ImperioJ2D.jar | Código compilado ]] | ||
|- | |- | ||
− | | | + | |Eduardo & Raphael || [http://pt.wikipedia.org/wiki/Licen%C3%A7a_BSD BSD] || |
+ | Todos os requisitos foram contemplados e ainda foram acrescentados: | ||
+ | * Música de fundo MID | ||
+ | * Sons WAV relacionados a: | ||
+ | ** Tiros | ||
+ | ** Alerta quando a vida chega a 10 | ||
+ | || Nenhum || | ||
+ | *[[Media:EduardoRaphael-ImperioJ2D.zip | Código fonte]] | ||
+ | * '''Teclas para jogar''' | ||
+ | ** Espaço - atira | ||
+ | ** X - escudo | ||
+ | ** C - revitalizador | ||
+ | ** Z - bomba aniquiladora | ||
+ | || [[Media:EduardoRaphael-ImperioJ2D.jar | Código Compilado]] | ||
|- | |- | ||
− | + | <!-- |Claudir & Paulo || Não definido || Ainda não disponível || 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 | |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 --> | ||
+ | |- | ||
|} | |} | ||
Edição atual tal como às 07h36min de 17 de dezembro 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
- Pegue aqui o código fonte com o esqueleto funcional (projeto Netbeans)
- Pegue aqui o pacote JAR com código compilado. Pronto para ser executado.
Exemplo: java -jar PintorVetorialJ2D.jar
Soluções dos alunos
Grupo | Licença Adotada | Requisitos contemplados | Requisitos não contemplados | Código Fonte | Jar Executável |
---|---|---|---|---|---|
Juliana & Thiago | Beerware | Todos | Nenhum | Código fonte - Projeto Netbeans | Código compilado |
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;
- Canhão de plasma
- 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;
- Escudo de força
- 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
- Pegue aqui o código fonte com o esqueleto funcional (projeto Netbeans)
- Pegue aqui o pacote JAR com código compilado. Pronto para ser executado.
Exemplo: java -jar ImperioJ2D.jar
Soluções dos alunos
Grupo | Licença Adotada | Requisitos contemplados | Requisitos não contemplados | Código Fonte - Netbeans | Jar Executável |
---|---|---|---|---|---|
Fernando Simão | GPL |
Todos os requisitos foram contemplados e ainda foram acrescentados:
|
Nenhum |
|
|
Daniel & Ivon | Beerware | Todos | Nenhum |
|
Código compilado |
Eduardo & Raphael | BSD |
Todos os requisitos foram contemplados e ainda foram acrescentados:
|
Nenhum |
|
Código Compilado |