Rechenergebnis im Javaeditor ausgeben & Punktesystem in Java programmieren?
Hallo, ich arbeite im Moment im Rahmen eines Projektes für das Fach Informatik (Gymnasium Klasse 10) an einem Rechenspiel, welches ich im Javaeditor programmiere.Das Prinzip ist simpel. Man bekommt eine Zufällige Gleichung (+;-;;/), tippt das Ergebnis ein und das Programm sagt ob es richtig oder falsch ist. Dazu gibt es noch ein Punktesystem. Ich habe allerdings 2 große Probleme. Zum einem habe ich einen String erstellt, der zufälig +,-,,/ wählt. Nun weiß ich allerdings leider nicht wie ich diesen String so in das Lösungsprogramm einfüge, dass es auch funktioniert. Außerdem habe ich angefangen ein Punktesystem zu programmieren, da das Programm allerdings immer wieder von vorne startet, ist der Punktezähler nie höher als 1. Wie kann ich das beheben?? Anbei findet ihr meinen gesammten Code Vielen Dank Max
public class Superhirn
{
public static void main (String[] args)
{
new Spiel();
}
}
class Spiel
{
public Spiel() // Konstruktor, Aufruf bei "new"
{
System.out.println("Willkommen bei Superhirn!");
System.out.println("Gleich geht das Spiel los!");
rateEinmal();
}
int zahl1 = zufallszahl(50);
int zahl2 = zufallszahl(50);
int ergebnis = zahl1+zahl2;
int punkte1 = 0;
void rateEinmal()
{
int zahl1 = zufallszahl(50);
int zahl2 = zufallszahl(50);
int ergebnis = zahl1+zahl2;
System.out.println("Wie viel ist " + zahl1 + rechensymbol + zahl2 + "?");
if (leseZahl() == ergebnis) {
System.out.println("Richtig!" );
punktzahl();
rateEinmal();
} else {
System.out.println("Falsch! Das Ergebnis war " + ergebnis );
System.out.println("GAME OVER!");
}
}
void punktzahl()
{
int punkte1 = 0;
punkte1++;
System.out.println("Deine Punktanzahl ist " + punkte1 );
}
;
int zeichen = zufallszahl(3);
String rechensymbol;
{
if(zeichen == 0){
rechensymbol = ("+");
}
if(zeichen == 1){
rechensymbol = ("-");
}
if(zeichen == 2){
rechensymbol = ("*");
}
if(zeichen == 3){
rechensymbol = ("/");
}
}
int zufallszahl(int n)
{
return new java.util.Random().nextInt(n);
}
int leseZahl()
{
return new java.util.Scanner(System.in).nextInt();
}
}
1 Antwort
Ich habe seit laengerem mit Java nicht besonders viel zu tun gehabt, allerdings kann ich dir zwei Moeglichkeiten vorschlagen:
Du kannst zum Zusammenrechnen entweder mittels switch-case das Rechenzeichen ueberpruefen und das Ergebnis entsprechend mit dem jeweiligen Zeichen zusammenrechnen oder du kannst deine Rechenaufgabe als String als Scriptcode parsen lassen. Einer kurzen Recherche nach sollte das mittels Java Scripting API (ScriptEngineManager) funktionieren.
Fuer die Sache mit der Punktezahl solltest du die Punktezahl nicht vor dem hochrechnen wieder auf 0 setzen. (s. punktezahl Methode)