Você está na página 1de 3

MPOO

Site: https://sites.google.com/site/profricodemery/mpoo

Site: http://ava.ufrpe.br/

Disciplina: Modelagem e Programação Orientada a Objetos (MPOO)

Profº: Richarlyson D’Emery Aluno: _____________________________________

LISTA DE EXERCÍCIOS IX
Leia atentamente as instruções gerais:
• No Eclipse renomeie o nome do projeto disponibilizado para br.edu.mpoo.listaIX.SeuNomeSobrenome.
• A lista envolve questões práticas que deverão ser entregues no AVA todos os códigos-fonte (projeto completo).
• A entrega da lista compõe sua frequência e avaliação na disciplina

Fique atento!

Antes de responder a lista, assista as videoaulas da Semana 10.

Mão na Massa!
O programador de codinome mustela putórius furo – “O Furão” – foi demitido de sua empresa anterior e foi contrato na Empresa
MPOO Games. Como período de experiência, O Furão participou de um hackathon promovido pela empresa para os novos
funcionários. O evento consistia em solucionar alguns problemas a partir de soluções que utilizam exclusivamente as bibliotecas
disponíveis no JDK, ou seja, em java e javax.
Sendo assim, viva a experiência do programador e mostre que você também é capaz de entrar em uma empresa de games.
Para os problemas utilize a codificação base disponibilizada que executa a aplicação:

(210 x 250) (600 x 600)


Obs.: Todas as imagens necessárias estão disponibilizadas no projeto.

• Problema 1: Primeiramente O Furão foi surpreendido com o velho padrão arquitetural MVC: Modificar a codificação de maneira
que atendesse a modelagem do diagrama de classe abaixo:
(Observação: caso você não solucione o Problema 1, continue com os próximos problemas sem MVC, mas realize as devidas heranças e utilize as devidas classes
aninhadas)

Lista de Exercícios MPOO Página 1 de 3


• Problema 2: Personalize a aplicação de acordo com as seguintes imagens:

(200 x 220) (600 x 600)


Dica: UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");

• Problema 3: Codifique as seguintes regras:

• Regra 1 - É possível inicializar o Jogo pressionando ENTER quando o botão estiver selecionado;

• Regra 2 - É possível finalizar uma fase clicando no ícone ou pressionando a


tecla Escape do teclado. Em ambos os casos deve-se perguntar o usuário se de fato
deseja finalizar a aplicação:

• Regra 3 - Se o policial não pegar o ladrão em 30s, então deve aparecer sobre o jogo a logo “game over”, caso contrário
“you win”:

• Regra 4 - Após 2s de exibição de ambas as mensagens, deve-se perguntar ao jogar se este “Deseja jogar novamente?”
em um JOptionPane (semelhante a Regra 2);
• Regra 5 – O policial poderá andar na diagonal;
• Regra 6 – Os personagens não poderão andar fora dos limites do JFrame na Fase 1.
• Problema 4: A solução de codificação disponibilizada utiliza JLabel para os personagens e sua atualização de posição é dada por
setLocation. Substitua essa solução de maneira que não seja utilizado o componente gráfico JLabel.

Utilize :
• BufferedImage (ao invés de JLabel)
• Os métodos paint e repaint de Window
Obs.: A solução deve evitar que a tela fique com o efeito pisca-pisca ao movimentar os personagens.

• Problema 5: Faça uso do padrão estrutural Adapter de maneira que só existam métodos que de fato sejam utilizados.
• Problema 6: Proponha mais duas fases que obedeçam as seguintes regras:
• Regra 1 – Quando o policial pegar o ladrão uma nova fase deverá aparecer, a vitória (“you win!”) só aparecer se o
policial passar todas as três fases.
Atenção: Para as próximas regras observe a existência do método abstrato moverLadrao() presente na classe Fase.
• Regra 2 – Na Fase 2, o movimento do ladrão deverá seguir uma linha reta, podendo esta ser na vertical ou na
horizontal (escolha deve ser aleatória). A velocidade do ladrão é constante. O ladrão poderá ultrapassar os limites do
JFrame. Quando este ultrapassar os limites do JFrame, deverá aparecer em um novo lugar do cenário. Por exemplo:

Lista de Exercícios MPOO Página 2 de 3


... ... ...
• Regra 3 – Na Fase 3, a velocidade do ladrão poderá ser alterada aleatoriamente após cada 5 segundos. Defina três
níveis de velocidade, “mas de maneira que não seja um Usain Bolt, rsrsrs!”. Quando trocada a velocidade, sua direção
também poderá ser alterada.
• Problema 7 (Opcional): Mostre que você é um exímio programador. Escolha uma das três fases e a partir desta crie a Fase 4.
Nesta crie o método lancarCassetete(), que permitirá ao policial lançar um cassetete em linha reta em uma direção (norte, sul,
leste ou oeste). Se o cassetete bater no ladrão, então o ladrão deverá ser considerado preso, consequentemente, a fase é
vencida.

Lista de Exercícios MPOO Página 3 de 3

Você também pode gostar