| PelaajanPiste.java |
1 package hirsipuu;
2
3 /**
4 * Luokka pelaajan pistetiedoille. Tiet???? pelaajan id:n, tason ja tason pisteet.
5 * @author Anna-Leena Latvala, Toni Purontaka
6 * @version v0.6, 15.4.2008
7 *
8 */
9 public class PelaajanPiste {
10 public int pisteet,pid,taso; //Pelaajan pisteet, id ja taso
11
12 /**
13 * Luo PelaajanPisteen, default-asetuksilla
14 *
15 */
16 public PelaajanPiste(){
17 pisteet=0;
18 taso=0;
19 }
20
21 /**
22 * Luo PelaajanPisteen, kun annettuna on pelaajan id
23 * @param id annnettu pelaajan id
24 */
25 public PelaajanPiste(int id){
26 pisteet=0;
27 pid=id;
28 taso=0;
29 }
30
31 /**
32 * Luo PelaajanPisteen, kun kaikki info on annettuna
33 * @param level Pelaajan taso
34 * @param id Pelaajan id
35 * @param points Pelaajan pisteet
36 */
37 public PelaajanPiste(int id, int level, int points){
38 pisteet=points;
39 pid=id;
40 taso=level;
41 }
42
43 /**
44 * Parsii tietonsa m????r??muotoisesta merkkijonosta:
45 * pid | tid | pisteet
46 *
47 * Mik??li tarjotaan v????r??nlaista syntaksia, palauttaa huomion siit??.
48 *
49 * @param jono parsittava jono
50 * @return true, jos parsiminen onnistui
51 * false, jos jono ei ollut syntaksin mukainen.
52 *
53 * @example
54 * <pre name="test">
55 * PelaajanPiste pp = new PelaajanPiste();
56 * pp.parse(" 2|3|230") === true;
57 * pp.tiedotToString() === "2|3|230";
58 * </pre>
59 */
60 public boolean parse(String jono) {
61 StringBuffer sb = new StringBuffer(jono);
62 pid = Jono.annaId(sb);
63 taso= Jono.annaId(sb);
64 pisteet=Jono.annaId(sb);
65 return (pid!=-1 && taso>-1 && pisteet>=0);
66 }
67
68 /**
69 * Palauttaa pelaajan pisteominaisuudet merkkijonona, joka on muotoa
70 * pid|taso|pisteet
71 *
72 * @return taso merkkijonona
73 *
74 * @example
75 * <pre name="test">
76 * PelaajanPiste pp1= new PelaajanPiste(1,1,100);
77 * PelaajanPiste pp2= new PelaajanPiste(13,5,1050);
78 * pp1.tiedotToString() === "1|1|100";
79 * pp2.tiedotToString() === "13|5|1050";
80 * </pre>
81 */
82 public String tiedotToString() {
83 return pid+"|"+taso+"|"+pisteet;
84 }
85
86 /**
87 * Asettaa uudet pisteet t?lle tasolle.
88 * @param pisteet uusi pistem??r?
89 */
90 public void setPisteet(int pisteet) {
91 this.pisteet = pisteet;
92 }
93
94 /**
95 * Palauttaa pistem??r?n, mik?li pyydet??n juurin t?m?n pelaajan t?m?n tason pisteit?.
96 * Muutoin palautetaan -2, jos pelaaja on v??r?, ja -1 jos pelaaja on oikea mutta tasoa ei ole pisteytetty.
97 *
98 * @param pelaaja pyydetyn pelaajan pid
99 * @param taso pyydetyn tason tid
100 * @return pisteet, jos pyydettiin t?t? pelaajaa ja tasoa
101 * -2 jos pelaaja on v??r?
102 * -1 jos vain taso on v??r?
103 *
104 * @example
105 * <pre name="test">
106 * PelaajanPiste pp1 = new PelaajanPiste(1,1,100);
107 * pp1.pisteet(1,2) === -1;
108 * pp1.pisteet(1,1) === 100;
109 * pp1.pisteet(3,1) === -2;
110 * </pre>
111 */
112 public int pisteet (int pelaaja, int taso) {
113 if (pelaaja != pid) return -2;
114 if (taso != this.taso) return -1;
115 return pisteet;
116 }
117 }
118