Boas, tenho aqui as classes dispnibilizadas. Tenho duvidas na classe torneio devido aos metodos. Estao expostas na parte onde postei o codigo. Obrigado.
Classe Jogador -
public class Jogador {
private String nome;
private int nivel;
private int vitorias;
private int derrotas;
private int parciais;
public static LinkedList<Jogador> jogador = new LinkedList<Jogador>();
public Jogador(String nome, int nivel, int vitorias, int derrotas, int parciais) {
this.nome = nome;
this.nivel = nivel;
this.vitorias = vitorias;
this.derrotas = derrotas;
this.parciais = parciais;
}
public int getDerrotas() {
return derrotas;
}
public int getNivel() {
return nivel;
}
public String getNome() {
return nome;
}
public int getParciais() {
return parciais;
}
public int getVitorias() {
return vitorias;
}
public int get_Pontuacao() {
int pont;
pont = 5*vitorias - 3*derrotas + parciais;
return pont;
}
public void resJogo(Integer pg){
pg = parciais;
}
Classe interface -
public interface Operacoes {
public void jogo(String n1, String n2, int p1, int p2);
public Jogador nome();
public String [] classificacao();
}
Classe Torneio -
Nesta classe realizei os três métodos, mas acho que não tão 100%.
O de fazer a melhor diferença entre vitorias e derrotas, não sei como o fazer. Tenho que percorrer a lista, e depois a cada ciclo, fazer diferença dos 2 atributos. E depois como comparo ? Não tou a ver mesmo.
1 . Deverá considerar que o método recebe o nome de cada jogador e os parciais ganhos por
cada um deles.
2 . Melhor diferença entre vitórias e derrotas. Em caso de empate considere o que tem
melhor nível.
- Os jogadores ordenados de acordo com a pontuação obtida
public class Torneio implements Operacoes {
private int pos;
private String [] Jogadores;
private static final int MAX_SIZE = 50;
public Torneio (int dim){
Jogadores = new String[dim];
pos=-1;
}
public Torneio (String Jogadores []){
Jogadores = new String[MAX_SIZE];
}
public void add(String nome){
Jogadores [++pos]=nome;
/*
int i=0;
while (i<conj.length && conj[i]!=null)
++i;
if (i<conj.length)
conj[i]=value;*/
}
public void remove(int index){
for(int i=index; i<Jogadores.length-1;i++){
Jogadores[i]=Jogadores[i+1];
--pos;
}
}
public String getValue (int index){
return Jogadores[index];
}
@Override
public void jogo(String n1, String n2, int p1, int p2){
int i=0;
while (!n1.equals(Jogador.jogador.get(i).getNome())) {
i++;}
if (i > Jogador.jogador.size()) {
System.out.println("Jogador 1 não encontrado!");
} else {
Jogador.jogador.get(i).resJogo(p1);}
while (!n2.equals(Jogador.jogador.get(i).getNome())) {
i++;}
if (i > Jogador.jogador.size()) {
System.out.println("Jogador 2 não encontrado!");
} else {
Jogador.jogador.get(i).resJogo(p2);}
}
@Override
public Jogador nome(){
int dif;
for (Jogador j : Jogador.jogador) {
dif = j.getVitorias()-j.getDerrotas();
}
return j.getNome();
}
@Override
public String[] classificacao(){
// - Ordenação da lista
// - Bandeira vermelha - marca a posição e guarda o valor ordenado
// - Bandeira azul - marca a posição do menor encontrado até ao momento
// - Bandeira verde - percorre todas asmposições e compara com o menor
for (Jogador j : Jogador.jogador) {
int i=0; //i = bandeira vermelha
int menor = j.get_Pontuacao(); //menor = bandeira azul
for (Jogador jj : Jogador.jogador){ //j = bandeira verde
if (jj.get_Pontuacao() < Jogador.jogador.get(menor).get_Pontuacao())
menor = jj.get_Pontuacao();
}
int temp = Jogador.jogador.get(i).get_Pontuacao(); //guarda o valor que está na bandeira preta
menor = Jogador.jogador.get(i).get_Pontuacao(); //guarda o menor valor encontrado
temp = Jogador.jogador.get(menor).get_Pontuacao();
}
String[] array = null;
array = (String[]) Jogador.jogador.toArray();
return array;
}
}