/**Luokka kuvaa pituushypp��j��
*
* @author jsuvileh
*
*/
public class Pituushyppaaja {
public static final int HYLATTY = -100;
public static final int KIERROSTEN_LKM = 6;
private int[] tulokset;
private String nimi;
/**Konstruktori alustaa muuttujat
*
* @param nimi
*/
public Pituushyppaaja(String nimi){
this.nimi = nimi;
this.tulokset = new int [KIERROSTEN_LKM];
}
public String kerroNimi(){
return this.nimi;
}
/**Asettaa tuloksen kierrokselle. Mik�li kierroksella on jo tulos, ei kirjaa tulosta.
*
* @param kierros
* @param tulos
* @return onnistuiko tuloksen kirjaus
*/
public boolean kirjaaTulos(int kierros, int tulos){
if (kierros < 1 || kierros > KIERROSTEN_LKM || this.tulokset[kierros-1] !=0)
return false;
else
this.tulokset[kierros-1] = tulos;
return true;
}
/**Korjaa tuloksen kierrokselta.
*
* @param kierros
* @param tulos
* @return onnistuiko tuloksen korjaus (ep�onnistuminen tarkoittaa, ett� kierros ei ole oikealla v�lill�)
*/
public boolean korjaaTulos(int kierros, int tulos){
if (kierros < 1 || kierros > KIERROSTEN_LKM)
return false;
else
this.tulokset[kierros-1] = tulos;
return true;
}
/**Kertoo kierroksen tuloksen. Kierrosten indeksointi alkaa yhdest�.
*
* @param kierros
* @return tulos kierrokselta tai nolla, jos kierroksen numero ei ole validi
*/
public int kerroTulos(int kierros){
if (kierros < 1 || kierros > KIERROSTEN_LKM)
return 0;
else
return this.tulokset[kierros-1];
}
/**Palauttaa hypp��j�n parhaan tuloksen, tai 0 jos ei ole yht��n tulosta
*
* @return paras tulos
*/
public int kerroParasTulos(){
int parasTulos = 0;
for(int i = 0; i < KIERROSTEN_LKM; i++)
if (this.tulokset[i] > parasTulos)
parasTulos = this.tulokset[i];
return parasTulos;
}
/**Vertaa pituushypp��j�� toiseen pituushypp��j��n
*
* @param toinenhyppaaja
* @return
*/
public int vertaa(Pituushyppaaja toinenhyppaaja){
int omaTulos = this.kerroParasTulos();
int toinenTulos = toinenhyppaaja.kerroParasTulos();
if (omaTulos == toinenTulos)
return 0;
else if (omaTulos < toinenTulos)
return -1;
else
return 1;
}
/*Palauttaa merkkijonokuvauksen pituushypp��j�st�. Formaatti: "nimi; tulos1, tulos2, tulos3, tulos4, tulos5, tulos6"
* Hyl�tyn
* (non-Javadoc)
* @see java.lang.Object#toString()
*/
public String toString(){
String palautaMinut = "";
palautaMinut += this.nimi;
for (int i = 0; i < KIERROSTEN_LKM; i++){
palautaMinut += ", ";
if (this.tulokset[i] == 0)
palautaMinut += "-";
else if (this.tulokset[i] == HYLATTY)
palautaMinut += "X";
else
palautaMinut += this.tulokset[i];
}
return palautaMinut;
}
}