Kuinka minä saan oikein pisteet käyttöön peliin, kun minulla on jo koodia tyyliin:
class peli { public static void main(String[] args) { ekakentta(); } public static void ekakentta() { int merkkijono; System.out.println("Olet sängyssäsi ja kello soi"); System.out.println("Mitä teet?"); System.out.println("1.Nouse sängystä"); System.out.println("2.Jatka nukkumista"); merkkijono = Lue.kluku(); if (merkkijono == 1) { //yksi piste lisää loppu(); } else { //yksi piste pois } public static void loppu() { System.out.println("Sait yhteensä " + pisteet + " pistettä!"); } }
Ainakaan C-kielen tapaan ei onnistunut, kun koitin... pisteet++; kyllä toimii, kunhan se jo int pisteet; samassa aliohjelmassa, mutta se nollaa sen aina, kun ohjelma meneen uuteen aliohjelmaan, jolloin se on sitten ihan väärin.
Voit tehdä peli-luokallesi staattisen muuttujan pisteet, joka säilyttää arvonsa.
class Peli { private static int pisteet; ...
Toinen asia on, kannattaako kaikki metodit tehdä staattisiksi? Voisit esim. main-metodissa luoda instanssin peli-luokasta ja sitten käynnistää peli kutsumalla jotain peli-luokan käynnistysmetodia.
class Peli { private int pisteet; private void aloitaPeli() { pisteet = 0; ekakentta(); ... } public static void main(String[] args) { Peli p = new Peli(); p.aloitaPeli(); } }
Aihe on jo aika vanha, joten et voi enää vastata siihen.