All pastes #412012 Raw Edit

Untitled

public text v1 · immutable
#412012 ·published 2007-03-27 13:01 UTC
rendered paste body
/**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&#65533;onnistuminen tarkoittaa, ett&#65533; kierros ei ole oikealla v&#65533;lill&#65533;)
   */
  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&#65533;.
   * 
   * @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&#65533;&#65533;j&#65533;n parhaan tuloksen, tai 0 jos ei ole yht&#65533;&#65533;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&#65533;&#65533;j&#65533;&#65533; toiseen pituushypp&#65533;&#65533;j&#65533;&#65533;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&#65533;&#65533;j&#65533;st&#65533;. Formaatti: "nimi; tulos1, tulos2, tulos3, tulos4, tulos5, tulos6"
   * Hyl&#65533;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;
  }
}