hirsipuu
Class Pelaajat

java.lang.Object
  extended by hirsipuu.Pelaajat

public class Pelaajat
extends java.lang.Object

Luokka pelaajien kokoelman mallintamiseksi. Pelaajat osaa lukea tietonsa pelaajat.dat tiedostosta.

Version:
v0.6, 15.4.2008
Author:
Anna-Leena Latvala, Toni Purontaka

Field Summary
private  java.util.Map<java.lang.Integer,Pelaaja> pelaajat
           
private static java.lang.String POLKU
           
 
Constructor Summary
Pelaajat()
          Alustaa Pelaajat defaulttitiedostosta.
Pelaajat(java.lang.String polku)
          Alustaa Pelaajat tiedostosta polussa "polku".
 
Method Summary
 Pelaaja annaPelaaja(java.lang.String nimeke)
          Palauttaa nimeke-nimisen pelaajan viitteen, jos sellainen pelaaja on olemassa.
 java.lang.String[][] hiScores()
          Palauttaa pelaajien nimet ja pisteet taulukossa j?rjestettyn? pistem??r?n mukaan hiScores-tyyliin.
private  void lisaaPelaaja(java.lang.String s)
          Lis?? tietorakenteeseen uuden pelaajan.
 void lisaaTiedostosta(java.lang.String polku)
          Lukee tiedostosta polussa "polku" pelaajien tiedot ja luo kokoelman taso-olioita.
 void lisaaUusiPelaaja(Pelaaja pelaaja)
          Lis?? vastik??n luodun pelaajan tietorakenteeseen.
 int paivitaKokonaispisteet(int pid, int lisays)
          P?ivitt?? halutun pd:n pelaajan kokonaispisteet ajan tasalle, kun pelaajan pistem??r? on lis??ntynyt lis?yksen verran.
private  java.util.Iterator<Pelaaja> pelaajaIteraattori()
          Palauttaa kaikkia kokoelman pelaajia iteroivan pelaajaiteraattorin.
 boolean tallennaTiedot()
          Tulostaa pelaajien tiedot defaulttitiedostoon.
 boolean tallennaTiedot(java.lang.String polku)
          Tulostaa pelaajien tiedot tiedostoon polussa "polku" ja muuttaa entisen siell? sijainneen tiedoston back-up tiedostoksi polku.bak (esim.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pelaajat

private java.util.Map<java.lang.Integer,Pelaaja> pelaajat

POLKU

private static final java.lang.String POLKU
See Also:
Constant Field Values
Constructor Detail

Pelaajat

public Pelaajat()
Alustaa Pelaajat defaulttitiedostosta.


Pelaajat

public Pelaajat(java.lang.String polku)
Alustaa Pelaajat tiedostosta polussa "polku".

Method Detail

lisaaTiedostosta

public final void lisaaTiedostosta(java.lang.String polku)
Lukee tiedostosta polussa "polku" pelaajien tiedot ja luo kokoelman taso-olioita. mik??li tiedosto on ep??kelpo, heitet????n poikkeus

Example:
 #THROWS IOException
 #import java.io.IOException;
 #import fi.jyu.mit.ohj2.VertaaTiedosto;
  VertaaTiedosto.kirjoitaTiedosto("testipelaajia.txt",
      "1    | admin | dfg43hg  | 20080107       | 4        | 285             | \n" +
      "2    | Saku  | sdfgRE34 | 20071227       | 3        | 200             | \n" +
      "3    | Mimmu | SDF23g   | 20080105       | 1        | 0               |"); 
  Pelaajat pel = new Pelaajat("testipelaajia.txt");
  
  // puuttuu testi poikkeuksille!
  
  VertaaTiedosto.tuhoaTiedosto("testipelaajia.txt");
 

tallennaTiedot

public boolean tallennaTiedot()
Tulostaa pelaajien tiedot defaulttitiedostoon.

Returns:
true, jos tallennus onnistui, false muuten

tallennaTiedot

public boolean tallennaTiedot(java.lang.String polku)
Tulostaa pelaajien tiedot tiedostoon polussa "polku" ja muuttaa entisen siell? sijainneen tiedoston back-up tiedostoksi polku.bak (esim. pelaajat.dat -> pelaajat.dat.bak)

Parameters:
polku - tiedosto, johon tiedot kirjoitetaan
Returns:
true, jos tallennus onnistui, false muuten
Example:
 #THROWS IOException
 #import java.io.IOException;
 #import fi.jyu.mit.ohj2.VertaaTiedosto;
  VertaaTiedosto.kirjoitaTiedosto("testipelaajia.txt",
      "; pid | nimi | salasana | viimeisin pelip?iv? | taso | yhteispisteet |\n" +
      "1|admin|dfg43hg|20080107|4|285|\n" +
      "2|Saku|sdfgRE34|20071227|3|200|\n" +
      "3|Mimmu|SDF23g|20080105|1|0|"); 
      
  Pelaajat pel = new Pelaajat("testipelaajia.txt");
  pel.tallennaTiedot("testitallennus.txt");           // ei ole testitallennus.txt ennen joten ei backuppia
  
  Pelaajat pul = new Pelaajat("testitallennus.txt");
  pul.paivitaKokonaispisteet(1,50);                   // muutetaan tietoja
  pul.tallennaTiedot("testitallennus.txt");           // syntyy backup-tiedosto
  
  VertaaTiedosto.vertaaFileFile("testipelaajia.txt", "testitallennus.txt.bak") === null;          // samat
  (VertaaTiedosto.vertaaFileFile("testipelaajia.txt", "testitallennus.txt") == null) === false;   // erit
   
 VertaaTiedosto.tuhoaTiedosto("testipelaajia.txt"); 
 VertaaTiedosto.tuhoaTiedosto("testitallennus.txt");          // tuhotaan syntyneet tiedostot
 VertaaTiedosto.tuhoaTiedosto("testitallennus.txt.bak");      // my?s back-up
 

annaPelaaja

public Pelaaja annaPelaaja(java.lang.String nimeke)
Palauttaa nimeke-nimisen pelaajan viitteen, jos sellainen pelaaja on olemassa. Jos ei, palauttaa null.

Parameters:
nimi - annettu nimi
Returns:
pyydetyn pelaajan, jos sellainen on - muuten null
Example:
 #THROWS IOException
 #import java.io.IOException;
 #import fi.jyu.mit.ohj2.VertaaTiedosto;
  VertaaTiedosto.kirjoitaTiedosto("testipelaajia.txt",
      "1    | admin | dfg43hg  | 20080107       | 4        | 285             | \n" +
      "2    | Saku  | sdfgRE34 | 20071227       | 3        | 200             | \n" +
      "3    | Mimmu | SDF23g   | 20080105       | 1        | 0               |"); 
  Pelaajat pel = new Pelaajat("testipelaajia.txt");
  (pel.annaPelaaja("Saku") != null) === true;
  (pel.annaPelaaja("puppu") == null) === true;
  pel.annaPelaaja("Mimmu").pisteet() === 0;
  VertaaTiedosto.tuhoaTiedosto("testipelaajia.txt");
 

paivitaKokonaispisteet

public int paivitaKokonaispisteet(int pid,
                                  int lisays)
P?ivitt?? halutun pd:n pelaajan kokonaispisteet ajan tasalle, kun pelaajan pistem??r? on lis??ntynyt lis?yksen verran. Palauttaa pelaajan uuden kokonaispistem??r?n.

Parameters:
pid - pelaajan id
lisays - lis?tt?v? pistem??r?
Returns:
uusi kokonaispistem??r?

hiScores

public java.lang.String[][] hiScores()
Palauttaa pelaajien nimet ja pisteet taulukossa j?rjestettyn? pistem??r?n mukaan hiScores-tyyliin.

Returns:
2d-merkkijonotaulukko, jossa vierekk?isiss? alkioissa on pelaajan nimi ja h?nen kokonaispistem??r?ns?.
Example:
 #THROWS IOException
 #import java.io.IOException;
 #import fi.jyu.mit.ohj2.VertaaTiedosto;
  VertaaTiedosto.kirjoitaTiedosto("testipelaajia.txt",
      "1    | admin | dfg43hg  | 20080107       | 4        | 205             | \n" +
      "2    | Saku  | sdfgRE34 | 20071227       | 3        | 300             | \n" +
      "3    | Mimmu | SDF23g   | 20080105       | 1        | 0               |"); 
  Pelaajat pel = new Pelaajat("testipelaajia.txt");
  
  String[][] skoori = pel.hiScores();
  skoori[0][0] === "Saku";  // paras on Saku
  skoori[1][1] === "205";    // admin on kakkosena pisteill? 205
  
  VertaaTiedosto.tuhoaTiedosto("testipelaajia.txt");
 

lisaaUusiPelaaja

public void lisaaUusiPelaaja(Pelaaja pelaaja)
Lis?? vastik??n luodun pelaajan tietorakenteeseen.

Parameters:
pelaaja - uusi pelaaja

pelaajaIteraattori

private java.util.Iterator<Pelaaja> pelaajaIteraattori()
Palauttaa kaikkia kokoelman pelaajia iteroivan pelaajaiteraattorin.

Returns:
pelaajaiteraattori

lisaaPelaaja

private void lisaaPelaaja(java.lang.String s)
Lis?? tietorakenteeseen uuden pelaajan.

Parameters:
s - rivi, josta pelaajan tiedot parsitaan. Jos s alkaa ";", tulkitaan kommentiksi.