Buscar

T1_2013.1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Trabalho de Programação Orientada a Objetos 
16/05/2013 
Prof. Ivan Mathias Filho 
 
Introdução 
O objetivo deste trabalho é construir um programa que permita que duas pessoas 
joguem Batalha Naval. 
Descrição 
1. Interface Gráfica 
A interface gráfica do jogo deverá usar elementos de Java Swing e Java2D. Os 
tabuleiros onde serão inseridas as embarcações, por exemplo, deverão ser construídos, 
obrigatoriamente, através de objetos como Rectangle2D.Double e de 
métodos como fill(), draw() e drawstring(), encontrados na api Java 2D. 
Use a figura abaixo como referência para a construção do seu tabuleiro: 
 
O posicionamento das armas no tabuleiro deverá ser feito usando-se dois frames: o 
primeiro contendo os tabuleiros, como foi descrito acima, e o segundo contendo a 
relação das armas existentes (submarinos, aviões e etc.). O mecanismo de 
posicionamento, entretanto, ficará a cargo de cada aluno. Será necessários apenas 
permitir que as armas possam ser alinhadas nas direções norte-sul ou leste-oeste. Além 
disso, o “triângulo” correspondente a um hidroavião poderá “apontar” para qualquer um 
dos pontos cardeais. 
O resultado de cada jogada deverá ser informado através de um JLabel. Use cores 
diferentes das usadas no resto do painel para que as mensagens sejam destacadas. Não 
use caixas de diálogos para informar os resultados, pois isso irá atrapalhar o andamento 
do jogo. 
Após um jogador terminar a sua jogada, o programa deverá informar que o outro 
jogador irá assumir o controle do jogo. Use um componente gráfico, como um JButton, 
para que o jogador peça ao programa que mostre a sua visão do jogo, após um dos 
jogadores ter deixado o controle. Entretanto, esconda a tabuleiro do jogador que 
acabou de ceder o controle do jogo. 
Quando um jogador afundar todas as armas do adversário, abra uma Dialog Box 
informando que ele venceu a partida, limpe os tabuleiros, mas não feche o programa. 
Permita que uma nova partida possa ser iniciada sem que o programa tenha que ser 
encerrado. 
2. Regras do Jogo 
O seu programa deverá implementar todas a regras apresentadas em 
http://zamorim.com/jogos/papel/batalha-naval-regras.html . 
O Processo de Desenvolvimento 
O trabalho em questão deverá ser desenvolvido utilizando a linguagem Java e a 
última versão da ferramenta Eclipse. Eu não examinarei os trabalhos 
desenvolvidos com outras ferramentas. 
Além disso, será levada em consideração a aplicação correta das técnicas de 
programação vistas durante o curso. Isso inclui a organização do aplicativo em pacotes. 
Artefatos a Serem Entregues 
Nos dias das entregas o aluno deverá enviar, para o e-mail do professor (ivan@inf.puc-
rio.br ou ivan.mathias.filho@gmail.com), um arquivo .zip (ou .jar) contendo o seu 
trabalho O nome do arquivo deverá ser a matrícula do aluno na PUC. Por exemplo, 
1222345zip. Além disso, o nome do projeto TEM QUE SER a matrícula do aluno. 
O projeto deverá ser exportado para o arquivo zip como mostra a figura a seguir: 
 
 
 
Entregas do Trabalho 
O cronograma de entregas será o seguinte: 
28/05/2013 – Exibição dos tabuleiros, tratamento e identificação (definição das 
coordenadas da casa clicada) do clique do mouse e alternância dos tabuleiros dos dois 
jogadores. (MARCO 1). 
11/06/2013 – Posicionamento no tabuleiro das armas de ambos os jogadores (MARCO 
2). 
25/06/2013 – Realização das jogadas, com a marcação dos tiros, a identificação das 
partes afundadas e dos tiros que caíram na água. (MARCO 3). 
30/06/2013 – Entrega da versão final. 
02/07/2013 e 04/06/2013 – Apresentação do trabalho completo. 
A não entrega das funcionalidades dos Marcos 1, 2 ou 3 nas datas previstas acarretará 
na perda de 2,5 pontos (cada marco) na nota final do trabalho, independente da 
qualidade da versão final. Funcionalidades que estiverem muito aquém do que foi 
estabelecido para os marcos não serão consideradas. 
A não entrega da versão final na data prevista acarretará em grau ZERO para o G2. 
Para efeito de entrega, o horário limite será às 23h59min do dia da entrega. 
Apresentação do Trabalho 
O trabalho deverá ser apresentado em sala nos dias 02/07 e 04/07/2013. O não 
comparecimento à apresentação acarretará na atribuição da nota ZERO ao aluno 
faltante. 
Regras Adicionais 
O trabalho é individual. Trabalhos feitos por mais de um aluno serão 
desconsiderados e TODOS receberão grau ZERO. 
É proibido o compartilhamento de código entre os alunos. Caso fique evidente que um 
aluno copiou parte do código de outro trabalho, todos os alunos envolvidos receberão 
grau ZERO. Posteriormente o caso será levado ao Conselho Disciplinar do CTC.

Outros materiais