Guten Tag,
ich habe heute ein kleines Spielchen geschrieben habe allerdings beim letzten Schritt ein Problem.
Und zwar wenn ich sage nein ich möchte keine neue Runde spielen bekomme ich die Fehlermeldung NullPointerException.
Ich habe es auch schon mit try und catch blöcken versucht aber leider ohne Erfolg.
Vielleicht hat ja jemand kurz Zeit mal drüber zu gucken.
ich habe heute ein kleines Spielchen geschrieben habe allerdings beim letzten Schritt ein Problem.
Und zwar wenn ich sage nein ich möchte keine neue Runde spielen bekomme ich die Fehlermeldung NullPointerException.
Ich habe es auch schon mit try und catch blöcken versucht aber leider ohne Erfolg.
Vielleicht hat ja jemand kurz Zeit mal drüber zu gucken.
Java:
package Aufgabe3;
import java.util.*;
public class Maexchen
{
Hashtable punkteHash;
int wuerfel1;
int wuerfel2;
int pasch;
int punkte;
double sumPunkte;
double aktPunkte;
int runde = 1;
public static void main(String[] args)
{
Maexchen spiel = new Maexchen();
Maexchen punkte = new Maexchen();
Maexchen ausgabe = new Maexchen();
Scanner eingabeScanner = new Scanner(System.in);
String Benutzereingabe;
String eingabe1 = "J";
String J = "J";
String j = "j";
String N = "N";
String n = "n";
while(eingabe1 == J || eingabe1 ==j)
{
spiel.wuerfeln();
spiel.punkteEingeben();
System.out.print("Möchten Sie noch eine Runde spielen? (J/N) \t");
Benutzereingabe = eingabeScanner.next();
System.out.println();
if(Benutzereingabe.equals(N) || Benutzereingabe.equals(n))
{
eingabe1 = N;
}
else
eingabe1 = J;
}
ausgabe.punkteAusgeben();
}
// Die erreichten Punkte werden in eine Hashtable eingegeben.
public void punkteEingeben()
{
punkteHash = new Hashtable();
punkteHash.put(runde,new Double (punkte));
runde++;
}
// Punkte werden ausgegeben
public void punkteAusgeben()
{
try
{
for (int i=1; i < punkteHash.size();i++)
{
aktPunkte = Double.parseDouble((String) punkteHash.get(i));
sumPunkte = sumPunkte + aktPunkte;
}
System.out.println("Sie haben insgesamt "+sumPunkte+" in "+punkteHash.keys()+" Runden erspielt.");
}
catch(NullPointerException ex)
{
System.err.println(ex);
}
}
// Es wird für zwei "Würfel" je eine Zufallszahl, mit einem Wert zwischen 1-6 erzeugt.
public int wuerfeln()
{
punkte = 0;
wuerfel1 = (int) (Math.random()*6)+1;
wuerfel2 = (int) (Math.random()*6)+1;
System.out.println("Würfel worden geworfen!");
System.out.println("Gewürfelt wurde eine "+wuerfel1+" und eine "+wuerfel2+".");
// Überprüfung ob ein Mäxchen gewürfelt wurde
if ((wuerfel1 == 1 && wuerfel2 == 2)||(wuerfel1 == 2 && wuerfel2 == 1))
{
punkte = 1000;
System.out.println("Herzlichen Glückwunsch, Sie haben ein Mäxchen geworfen!");
}
// Überprüfung ob ein Pasch gewürfelt wurde
pasch = 0;
if (wuerfel1 == wuerfel2)
{
punkte = (wuerfel1*100);
System.out.println("Super, Sie haben ein Pasch mit zwei "+wuerfel1+"-en geworfen.");
System.out.println("Das sind "+punkte+" Punkte.");
}
// Alternativ Punkte errechnen
if (punkte == 0)
{
punkte = (Math.max(wuerfel1, wuerfel2)*10)+Math.min(wuerfel1, wuerfel2);
System.out.println("Gut, Sie haben "+punkte+" Punkte erreicht.");
}
return punkte;
}
}