Ich lerne seit ein paar Tagen Java und komme einfach nicht drauf, warum dieser Code nicht funktionieren will ...
Der Fehler lautet:
Exception in thread "main" java.lang.NullPointerException
at Ratespiel.<init>(Ratespiel.java:28)
at SpielStarter.main(SpielStarter.java:4)
Und der Befehl: Die zu erratene Zahl ist ...
klappt auch, aber danach kommt einfach nichts mehr.
Java:
public class Ratespiel {
Spieler s1;
Spieler s2;
Spieler s3;
public void starteSpiel (){
s1 = new Spieler();
s2 = new Spieler();
s3 = new Spieler();
}
int tipp1 = 0;
int tipp2 = 0;
int tipp3 = 0;
boolean s1hatRecht = false;
boolean s2hatRecht = false;
boolean s3hatRecht = false;
int zielZahl = (int) (Math.random()*10); {
while(true) {
System.out.println("Die zu erratene Zahl ist " +zielZahl);
s1.raten();
s2.raten();
s3.raten();
tipp1 = s1.zahl;
System.out.println("Spieler eins tippt " + tipp1);
tipp2 = s2.zahl;
System.out.println("Spieler zwei tippt " + tipp2);
tipp3 = s3.zahl;
System.out.println("Spieler drei tippt " + tipp3);
if(tipp1 == zielZahl) {
s1hatRecht = true;
}
if(tipp2 == zielZahl) {
s2hatRecht = true;
}
if(tipp3 == zielZahl) {
s3hatRecht = true;
}
if (s1hatRecht || s2hatRecht || s3hatRecht) {
System.out.println("Wir haben einen Gewinner!");
System.out.println("Spieler eins hat richtig geraten? " + s1hatRecht);
System.out.println("Spieler zwei hat richtig geraten? " + s2hatRecht);
System.out.println("Spieler drei hat richtig geraten? " + s3hatRecht);
System.out.println("Das Spiel ist aus.");
break;
}
else {
System.out.println("Wir müssen nochmal spielen!");
}
}
} }
Code:
public class Spieler {
int zahl = 0;
public void raten(){
zahl = (int) (Math.random() *10);
System.out.println("Ich tippe auf die Zahl: " +zahl);
}
}
Java:
public class SpielStarter {
public static void main (String[] args) {
Ratespiel spiel = new Ratespiel();
spiel.starteSpiel();
}
}
Der Fehler lautet:
Exception in thread "main" java.lang.NullPointerException
at Ratespiel.<init>(Ratespiel.java:28)
at SpielStarter.main(SpielStarter.java:4)
Und der Befehl: Die zu erratene Zahl ist ...
klappt auch, aber danach kommt einfach nichts mehr.