/**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; } }