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.