UNIVERSIDADE DOS AÇORES
DEPARTAMENTO DE MATEMÁTICA
ESTRUTURAS E ALGORITMOS
TRABALHO DE CASA Nº 1 - ENUNCIADO 2
Considere um torneio de setas (darts) disputado por N jogadores. Segundo as regras uma
vitória é obtida à melhor de cinco parciais, isto é, ganha o jogador que vencer três parciais,
num máximo de cinco.
Cada jogador é caracterizado por um nome, nível, nº de vitórias, nº de derrotas, nº parciais
ganhos.
Sempre que um jogador ganhar um jogo é incrementado o nº de vitórias em uma unidade.
Sempre que o jogador perder um jogo é incrementado em uma unidade o nº de derrotas, mas
caso tenha vencido algum parcial então o nº de parciais é incrementado em função do nº de
parciais ganhos.
O nível de um jogador está relacionado com a pontuação do mesmo e admite um dos seguintes
valores: Amador (<10 pontos), Intermédio (<25 pontos), Avançado (<50 pontos), Profissional
(≥50 pontos).
A pontuação do jogador é obtida em função da seguinte expressão:
PARTE I
1. Considere a classe Jogador que contém a informação sobre um jogador do torneio.
[1.0]
a. Implemente um método construtor necessário para criar um jogador no início do torneio,
bem como métodos para obter aos valores dos respectivos atributos.
[1.0]
b. Implemente o método getPontuacao que retorna o total de pontos obtidos pelo jogador
até ao momento.
[2.0]
c. Implemente o método resJogo que recebe como parâmetros o número de parciais ganhos
(pg) no final de um jogo e actualiza os dados do jogador.
2. Considere a classe Torneio que contém a informação relativa aos jogadores, que disputam o
torneio, guardada no array jogadores.
[2.0]
a.
Implemente dois métodos construtores em que o primeiro recebe o total de jogadores
que irão disputar o torneio e inicializa o array jogadores com esta dimensão. O segundo
método recebe como parâmetro um array com o nome dos jogadores que irão disputar o
torneio e inicializa o array jogadores.
[1.0]
b. Implemente o método addJogador que insere um novo jogador na primeira posição livre
do array jogadores.
[1.0]
c. Implemente o método removeJogador que remove o jogador que se encontra na posição
index do array jogadores.
[1.0]
d. Implemente o método getJogador que retorna o jogador que se encontra na posição
index do array jogadores.
PARTE 2
Em cada questão escolha apenas uma das alíneas para implementar
3. Na classe Torneio implemente o método jogo que actualiza a informação relativa ao torneio,
após um jogo entre dois jogadores.
[1.0]
a. Deverá considerar que o método recebe a posição no array de cada jogador e os parciais
ganhos por cada um deles.
[1.5]
b. Deverá considerar que o método recebe o nome de cada jogador e os parciais ganhos por
cada um deles.
[2.0]
c. Deverá considerar que o método recebe dois objectos da classe Jogador e os parciais
ganhos por cada um deles.
4. Na classe Torneio implemente um método que devolva o nome do jogador com:
[1.0]
a. melhor diferença entre vitórias e derrotas.
[2.0]
b. melhor diferença entre vitórias e derrotas. Em caso de empate considere o que tem
melhor nível.
[3.0]
c. melhor diferença entre vitórias e derrotas. Em caso de empate considere como critério de
desempate o melhor nível. Se subsistir o empate então desempate pelo maior nº de
parciais ganhos.
5. Na classe Torneio implemente o método classificação que retorna um novo array com:
[2.0]
a. os jogadores ordenados de acordo com a pontuação obtida.
[3.0]
b. os jogadores ordenados de acordo com a pontuação obtida. Em caso de igualdade de
pontos, o critério de desempate é feito pela diferença entre vitórias e derrotas.
PARTE 3
[3.0]
Implemente a classe executável TesteTorneio que deverá realizar uma simulação do torneio.
Considere que no torneio competem 26 jogadores, que todos jogam entre si e que os resultados
parciais em cada jogo deverão ser obtidos de forma aleatória.
Para cada jogo deverá imprimir o nome dos jogadores que o disputam e os resultados parciais
do mesmo.
No final, deverá imprimir o nome dos jogadores, o nível, a pontuação final, as vitórias, derrotas
e os parciais ganhos do primeiro ao último classificado.
Download

UNIVERSIDADE DOS AÇORES