Zahlenraten mit Guthabenkonto

aramo.g

Neues Mitglied
Hallo Leute,
ich befinde am Anfang meiner Ausbildung zum Fachinformatiker für Anwendungsentwicklung und bin gerade dabei ein Zahlen raten Spiel zu programmieren.
Ich habe folgendes Problem:
Wenn der User seinen Einsatz tätigt, wird es erst vom Guthaben abgezogen, aber verschwindet dann wenn man nicht richtig geraten hat, sodass das Guthaben niemals leer gehen kann. Kann mir bitte jemand verraten, wie das aktuelle Guthaben auch immer aktuell gehalten wird?
Unten mein aktuelles Skript:

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);


int zahl;
int zufall = (int)(Math.random() * 10 + 1);
boolean wert;
int zähler=0;
int einsatz;

while(wert=true) {
int konto=500;
int aktuell;
System.out.println("Wieviel EURO möchten Sie setzen?");
einsatz = input2.nextInt();
aktuell= konto-einsatz;
System.out.println("Guthaben: "+aktuell+"€");


System.out.print("Gebe eine zahl zwischen 1-10 ein: ");
zahl = input.nextInt();
zähler++;


if (zahl <= 0 || zahl > 10) {
System.out.println("");
System.out.println("Ungültige Eingabe");

}

else if(zahl>zufall){
System.out.println("");
System.out.println("Die gesuchte Zahl ist kleiner");

}else if(zahl<zufall){
System.out.println("");
System.out.println("Die gesuchte Zahl ist größer");

}
else if(zahl == zufall){
wert=true;
int neuerKontostand= aktuell+(einsatz*2);
System.out.println("Du hast die richtige Zahl in "+ zähler + " Versuchen erraten! Gratulation!!!");
System.out.println("Ihr neuer Kontostand beträgt " + neuerKontostand + "€");
break;
}
}
}
 

Javinner

Top Contributor
Benutze Code-Tags für Code.

Weil du, wenn ich es richtig sehe, dein Konto innerhalb der while-Schleife immer wieder aufs Neue auf 500 setzt.
Es wäre besser, wenn du all die Variablen außerhalb der Schleife platzierst.
 

Javinner

Top Contributor
guthaben : 500;
spiel : false
solange : !spiel
geheimeZahl : Math
deineZahl = Scanner
deineZahl == geheimeZahl ? guthaben plus : guthaben minus;
spiel : Scanner (beenden?)
 

VfL_Freak

Top Contributor

abc66

Top Contributor
Habe es schnell einmal umgeschrieben (so wie ich's sinnvoll finde):
Java:
	public static class Spiel1 {
		@SuppressWarnings("resource")
		int naechsteZahl(String nachricht) {
			System.out.println(nachricht + ": ");
			return new Scanner(System.in).nextInt();
		}

		void spiele() {
			int zufall = (int) (Math.random() * 10) + 1;
			boolean wert = true;
			int zähler = 0;

			int konto = 500;

			while (wert == true) {

				int einsatz = naechsteZahl("Wieviel EURO möchten Sie setzen?");
				if (einsatz <= 0 || einsatz > konto) {
					System.out.println("Ungültige Eingabe");
					continue;
				}

				konto = konto - einsatz;
				System.out.println("Guthaben: " + konto + "€");

				int zahl = naechsteZahl("Gebe eine zahl zwischen 1-10 ein");
				zähler++;

				if (zahl <= 0 || zahl > 10) {
					System.out.println("Ungültige Eingabe");
					continue;
				}

				if (zahl > zufall) {
					System.out.println("Die gesuchte Zahl ist kleiner");

				} else if (zahl < zufall) {
					System.out.println("Die gesuchte Zahl ist größer");

				} else if (zahl == zufall) {
					wert = false;
					int neuerKontostand = konto + (einsatz * 2);
					System.out.println("Du hast die richtige Zahl in " + zähler + " Versuchen erraten! Gratulation!!!");
					System.out.println("Ihr neuer Kontostand beträgt " + neuerKontostand + "€");
				}
			}
		}
	}

	public static void main(String[] args) {
		new Spiel1().spiele();
	}
 
Habe es schnell einmal umgeschrieben (so wie ich's sinnvoll finde):
Java:
    public static class Spiel1 {
        @SuppressWarnings("resource")
        int naechsteZahl(String nachricht) {
            System.out.println(nachricht + ": ");
            return new Scanner(System.in).nextInt();
        }

        void spiele() {
            int zufall = (int) (Math.random() * 10) + 1;
            boolean wert = true;
            int zähler = 0;

            int konto = 500;

            while (wert == true) {

                int einsatz = naechsteZahl("Wieviel EURO möchten Sie setzen?");
                if (einsatz <= 0 || einsatz > konto) {
                    System.out.println("Ungültige Eingabe");
                    continue;
                }

                konto = konto - einsatz;
                System.out.println("Guthaben: " + konto + "€");

                int zahl = naechsteZahl("Gebe eine zahl zwischen 1-10 ein");
                zähler++;

                if (zahl <= 0 || zahl > 10) {
                    System.out.println("Ungültige Eingabe");
                    continue;
                }

                if (zahl > zufall) {
                    System.out.println("Die gesuchte Zahl ist kleiner");

                } else if (zahl < zufall) {
                    System.out.println("Die gesuchte Zahl ist größer");

                } else if (zahl == zufall) {
                    wert = false;
                    int neuerKontostand = konto + (einsatz * 2);
                    System.out.println("Du hast die richtige Zahl in " + zähler + " Versuchen erraten! Gratulation!!!");
                    System.out.println("Ihr neuer Kontostand beträgt " + neuerKontostand + "€");
                }
            }
        }
    }

    public static void main(String[] args) {
        new Spiel1().spiele();
    }
wie kann ich ihre sache in mein javaeditor einfügen und ausführen lassen wäe lieb wenn sie mir das sagen könnten Lg David
 

VfL_Freak

Top Contributor
Willst Du den Code von oben in Deinen Editor einfügen ??
==> einfach Paste & Copy 😳😎

'Ausführen' sollte dann so gehen wie gewohnt - allerdings kenne und nutze ich den JavaEditor nicht !

VG Klaus
 

VfL_Freak

Top Contributor
Du kannst den Code markieren und mit <CTRL><c> kopieren.
Dann mit <CTRL><v> "irgendwo" einfügen. Im Javaeditor halt dort, wo Du sonst den Coide von Hand eintippen würdest!

VG Klaus
 

Ähnliche Java Themen

Neue Themen


Oben