/** * Luokka Peli, johon talletetaan valittu taso, vuorojen ja * oikeiden tulosten määrä. Luokka lopettaa pelin vuorojen * tultua maksimiin ja antaa arvosanan riippuen oikeiden tulosten * määrästä. * * @author Karoliina Tiuraniemi * @version 1.0 18.1.2009 * */ public class Peli { private int tuloslaskuri = 0; private int vuorolaskuri = 0; private int vuoromaksimi = 5; private Matikka matikka; private String syy; private int taso; /** * Metodi, joka luo uuden pelin määrittäen oletusarvot * laskettavien ötököiden maksimimäärälle ja vuorojen määrälle. * @param taso tämän pelin puitteissa tasoja on 2. * @param vuoro oletusarvo on 5 vuoroa pelissä, mutta käyttäjä * pystyy muuttamaan tätä asetusdialogissa. * */ public Peli(int taso, int vuoro){ this.matikka = new Matikka(); this.asetaVuoromaksimi(vuoro); this.taso = taso; if (taso <= 1){ System.out.println("Valitsit tason 1: Kuinka monta?"); } if (taso >= 2){ System.out.println("Valitsit tason 2: Laske yhteen!"); } } /** * Metodi, joka antaa käytetyn matikka-luokan olion. * @return this.matikka */ public Matikka annaMatikka(){ return this.matikka; } /** * Metodi, joka asettaa pelivuorojen määrälle maksimin. * @param maksimi */ public void asetaVuoromaksimi(int maksimi){ if (maksimi >= 5){ this.vuoromaksimi = maksimi; } else { this.vuoromaksimi = 5; } System.out.println("Vuoromaksimi on nyt " + this.vuoromaksimi); } /** * Metodi, joka antaa vuoromaksimin. * @return this.vuoromaksimi; */ public int annaVuoromaksimi(){ return this.vuoromaksimi; } /** * Metodi, joka antaa vuorolaskurin arvon. * @return this.vuorolaskuri; */ public int annaVuorolaskuri(){ return this.vuorolaskuri; } /** * Metodi, joka lisää vuorolaskuria yhdellä. */ public void lisaaVuorolaskuri(){ this.vuorolaskuri++; } /** * Metodi, joka nollaa vuorolaskurin. * */ public void nollaaVuorolaskuri(){ this.vuorolaskuri = 0; } /** * Metodi, joka lisää tuloslaskuria yhdellä. */ public void lisaaTuloslaskuri(){ this.tuloslaskuri++; } /** * Metodi, joka nollaa tuloslaskurin. * */ public void nollaaTuloslaskuri(){ this.tuloslaskuri = 0; } /** * Metodi, joka antaa tuloslaskurin arvon. * @return this.tuloslaskuri */ public int annaTuloslaskuri(){ return this.tuloslaskuri; } /** * Metodi, joka antaa pelin tason. * @return this.taso; */ public int annaTaso(){ return this.taso; } /** * Metodi, jolla käyttäjä voi lopettaa pelin. * (ei tekstipohjaisessa) * */ public void lopetaPeli(){ this.syy = "Päätit lopettaa pelin."; System.out.println(syy); this.nollaaTuloslaskuri(); this.nollaaVuorolaskuri(); } /** * Metodi, joka ilmoittaa onko peli loppunut. * @return true vain, jos vuoroja on pelattu maksimimäärä. */ public boolean peliLoppui(){ if (this.vuorolaskuri == this.vuoromaksimi){ System.out.println("Peli loppui!"); this.syy = "Pelasit " + this.vuorolaskuri + " vuoroa."; System.out.println(this.syy); this.annaTulos(); return true; } else { return false; } } /** * Metodi, joka antaa pelaajalle kierroksen tuloksen ja sanallisen arvion. * @return arvosana; */ public double annaTulos(){ System.out.println("Löysit heti oikean vastauksen " + this.tuloslaskuri + " kertaa."); double arvosana; if (this.vuorolaskuri > 0){ arvosana = (double) this.tuloslaskuri/this.vuorolaskuri; } else { arvosana = 0; } System.out.println("Tuloksesi on " + arvosana); if (arvosana < 0.25){ System.out.println("Jatka harjoittelua!"); } else if (arvosana < 0.5){ System.out.println("Paranna vielä."); } else if (arvosana < 0.75){ System.out.println("Kohtalaisen hyvin."); } else if (arvosana < 1) { System.out.println("Hienoa!"); } else if (arvosana == 1){ System.out.println("Loistavaa!!!"); } return arvosana; } }