Universidade Federal de Campina Grande – UFCG
Centro de Engenharia Elétrica e Informática – CEEI
Departamento de Sistemas e Computação – DSC
Professores: Gustavo Soares (turma 1)
Kyller Gorgônio (turma 2)
Livia Campos (turma 3)
Raquel Lopes (turma 4)
Disciplina: Laboratório de Programação 2
Período: 2014.1
Laboratório 03 Neste laboratório, exploramos mais questões em Java envolvendo o uso de arrays e modularização.
Instruções Este laboratório terá duração de 2 aulas e deve ser entregue de acordo com as datas e instruções
abaixo:
● Data de entrega: 27/05/2014, até 23:59h;
● Será tolerado o atraso de no máximo 24hs para a entrega do laboratório. Laboratórios
entregues com atraso terão uma penalização de 50% na nota;
● Crie o projeto lab03 no eclipse e programe todos os exercícios dentro do pacote lp2.lab03;
● As submissões serão feitas via moodle (veja instruções no site da disciplina:
https://sites.google.com/site/prog2ufcg/lp2/programa-20141)
● Certifique-se de que seus programas não têm erros de compilação;
● Antes da definição de cada classe escreva o seu nome em comentário
/* Aluno: <seu nome> */
Fixando conceitos
Depois da aula teórica, você já sabe declarar, inicializar e usar arrays de uma dimensão (se você
não lembra, volte lá no material.). O que você precisa saber também é como criar arrays de arrays.
Esses arrays multidimensionais são muito parecidos com listas de listas em Python. A diferença
principal entre os dois é que arrays em java têm tamanho fixo. De resto, um array de arrays é
usado da seguinte forma:
Entendendo o problema
Os alunos da disciplina LP2 normalmente ficam na Universidade no horário do almoço para
aproveitar melhor o tempo entre as aulas da manhã e da tarde e estudar para as disciplinas.
Entretanto, nesse início de semestre eles ainda não possuem muitas provas e projetos e com isso
estão com tempo ocioso. Eles, então, pensaram em aproveitar seus conhecimentos em Java para
implementar um programa de jogo da velha para que possam se divertir e ajudar o tempo a passar
mais rápido nesses dias de “folga”.
Seu sistema deve garantir os seguintes requisitos:
●
Os jogadores não poderão jogar em posições que já foram “ocupadas em jogadas
anteriores”.
●
O mesmo jogador não pode jogar duas vezes seguidas.
●
Se um dos jogadores ganhar a partida ela deve ser finalizada, mesmo que o tabuleiro ainda
não se encontre completamente preenchido.
●
Se ao “ocupar” todas as casas do tabuleiro, nenhum dos jogadores ganhar o jogo deve ser
decretado como empate.
●
O tabuleiro deve ser exibido no início do jogo para que se tenha certeza que ele está vazio.
●
A cada jogada o tabuleiro deve ser exibido para mostrar quais posições encontram-se
ocupadas e por qual dos jogadores.
Jogo da velha Um dos alunos da disciplina LP2 fez uma versão inicial do jogo e enviou para que outros alunos
pudessem colaborar na implementação. Essa primeira versão do código encontra-se disponível aqui1
. O autor dessa versão inicial do jogo enviou seu código para os outros alunos seguido da
mensagem abaixo:
“Galera, segue o jogo da velha que eu implementei. Coloquei muito código repetido só pra funcionar
e ficou meio desorganizado. Seria bom arrumar o código, pois se os professores olharem do jeito
que tá vão querer arrancar nosso couro!!!”
Todos os alunos começaram então uma maratona para ajudar o colega a organizar o código da
melhor maneira possível. Para tanto é importante que vários métodos sejam implementados no
sentido de agrupar as funcionalidades da aplicação e com isso deixá-la mais organizada, fácil de
entender e de modificar no futuro.
Passo1: Selecione o pacote lp2.lab03 no Eclipse e importe dentro desse pacote o código que foi
disponibilizado para vocês (File-> Import->File System). No botão “Browse...” você deve selecionar
o diretório onde está localizada classe JogoDaVelha.java que você baixou e, em seguida, selecionar
essa
classe.
Faça
uma
cópia
da
classe
JogoDaVelha.java,
chamando-a
de
JogoDaVelhaModularizado.java. Nesse novo arquivo vocês devem organizar o código, que está todo
concentrado no método main, em diversos métodos. Lembrem-se, ao dividir o código em métodos
temos que pensar em como as informações serão armazenadas e como esses métodos podem se
relacionar para aproveitar funcionalidades já feitas pelos outros.
Sugestão! Pense nas ações que devem ser realizadas para a implementação do jogo, como: inicialização do jogo, impressão do tabuleiro, verificação do vencedor, etc. Passo2: Os alunos de LP2 resolveram o problema da modularização muito rápido e pensaram em
implementar mais funcionalidades para deixar o jogo ainda mais interessante. Nesse sentido,
1
http://www2.lsd.ufcg.edu.br/~programacao2/labs-20141/JogoDaVelha.java
modifique a classe JogoDaVelhaModularizado.java para que vários jogos sejam realizados em
sequência. Ao término de cada partida deve-se perguntar se uma nova partida será iniciada ou se
o sistema deve ser finalizado.
Para exercitar mais 1. Os alunos se envolveram tanto com o jogo da velha que pensaram em fazer um campeonato
entre eles. Crie uma nova classe JogoDaVelhaCampeonato, e modifique o código da classe
JogoDaVelhaModularizado para que ele armazene o nome e o número de vitórias de 4 usuários.
No início da partida deve-se identificar quais jogadores participarão da partida e sempre o
vencedor aumentará o número de vitórias que possui. Quando não se desejar jogar mais
partidas, antes de ser finalizado, o sistema deve apresentar um ranking com os jogadores
ordenados de maneira decrescente pela quantidade de vitórias.
Download

Laboratório 03 - Universidade Federal de Campina Grande