Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: tekstiseikkailu +java

juhaz [14.02.2006 10:27:12]

#

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.

FooBat [14.02.2006 11:11:43]

#

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();
  }

}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta