Programação

Propaganda
Programação
Trabalho da componente prática do exame de época especial
Semestre de Inverno de 2013/2014
O objetivo do trabalho é realizar um programa em Java para jogar ao “Jogo do Galo”, com
dois jogadores ou um jogador contra o computador. O programa vai registando o número
de vitórias, derrotas e empates de cada jogo.
Ao executar o programa com o comando java Galo a janela de comandos ficará com o
aspeto da figura 1, ficando o programa à espera que o jogador do símbolo “X” indique a
posição do tabuleiro onde quer jogar. As posições do tabuleiro (caso seja de 3 x 3) são
identificadas por um número de 1 a 9.
Se o utilizador introduzir o número 5 é realizada a jogada e o programa escreve um novo
tabuleiro já com a jogada “X” solicitando que o outro jogador indique a posição para a
jogada “O”, como mostra a figura 2.
Cada vez que é realizada uma jogada, o programa escreve novamente o tabuleiro com as
jogadas já realizadas e solicita a jogada do outro jogador até haver vitória de um dos
jogadores ou empate. A figura 3 mostra o tabuleiro após a sequência de jogadas 5, 9, 3, 7
e 1, ficando à espera da próxima jogada do jogador “O”. Se for introduzida a posição 8, o
jogador “O” vence a partida, recomeçando outra em que o primeiro a jogar é “O”, como
mostra a figura 4.
Em vez de ser introduzida uma jogada, o jogador corrente pode indicar um dos seguintes
comandos, identificados por uma só letra:
P – (Pontuação) Apresenta a pontuação das partidas realizadas indicando o número de
partidas realizadas e as vitórias do jogador “X” e “O”.
N – (Novo jogo) Recomeça uma nova partida considerando derrota do jogador corrente.
C:\PG>java Galo
|
|
---+---+--|
|
---+---+--| Figura
| 1
X > _
C:\PG>java Galo
|
|
---+---+--|
|
---+---+--|
|
X > 5
|
|
---+---+--| X |
---+---+--|
|
O > _
Figura 2
X |
| X
---+---+--| X |
---+---+--O |
| O
O > 8
Figura 3
U – (Undo) Desfaz a última jogada, dando hipótese do jogador anterior jogar novamente.
F – (Fim) Após uma confirmação do utilizador, termina o jogo e o programa. Apresenta a
pontuação das partidas realizadas (como o comando P).
H – (Help) Apresenta todos os comandos indicando a letra e a descrição sumária de cada
um.
Se o programa for iniciado com o comando java Galo auto, o jogador “X” jogará
contra o computador, porque o jogador “O” terá jogadas realizadas automaticamente
pelo programa, só sendo solicitadas jogadas (ou comandos) ao jogador “X”. Os trabalhos
menos ambiciosos poderão realizar jogadas automáticas escolhendo aleatoriamente uma
das posições disponíveis.
X |
| X
---+---+--| X |
---+---+--O | O | O
O jogador O venceu.
Novo jogo.
Jogador O a começar.
4
| Figura
|
---+---+--|
|
---+---+--|
|
O >
Valorizam-se os trabalhos que aceitem vários níveis de jogadas automáticas e com as
melhores estratégias de jogadas automáticas. Por exemplo, o comando java Galo auto 2 pode
realizar jogadas automáticas com uma estratégia de nível 2.
Na realização do trabalho devem ser respeitadas as seguintes regras:
- Não repetir o código do mesmo algoritmo. Em vez disso, definir métodos que serão chamados várias
vezes.
- Cada método não dever conter mais do que dois ciclos repetitivos e não deve ocupar mais do que 25 a
30 linhas.
- O código desenvolvido deve ficar agrupado em várias classes. Além da classe Galo, devem existir
outras classes com objetivos bem definidos. Valorizam-se os trabalhos que usem várias classes com
objetivos bem definidos.
Programação
Trabalho da componente prática do exame de época especial
Semestre de Inverno de 2013/2014
- Não usar “números mágicos” no código dos métodos. Em vez disso, definir constantes com nomes
sugestivos, por exemplo: public static final int SIZE_BOARD=3; .
- São valorizados os trabalhos em que a dimensão do tabuleiro possa ser facilmente alterada para 2x2,
4x4, ou qualquer outra, modificando apenas o valor de uma constante, por exemplo, bastando
modificar a constante SIZE_BOARD=3 para SIZE_BOARD=4.
Ficarão reprovados no exame de época especial os alunos que não entregarem o trabalho
(todos os ficheiros fonte em java) por email, para [email protected], até ao final do dia 18 de
Março, ou que o trabalho entregue não cumpra os requisitos mínimos do enunciado.
A discussão do trabalho será agendada para dia 19 de Março.
Os alunos que tiverem aprovação na discussão da componente prática farão a componente
teórica no dia 20 de Março.
Bom trabalho,
Pedro Pereira.
ISEL, 4 de Março de 2014
Download