Zahlenratespiel mit JAVA
hallo,
ich möchte mit Java ein kleines Rateprogramm schreiben ohne GUI. Mein bisheriger Code:
import java.util.Scanner;
public class Ratestunde{
public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.println("\n Willkommen zu Andy's Ratestunde\n\n"); int z = (int) Math.ceil(10*Math.random()); System.out.println("\n\nBitte gebe eine Zahl zwischen 1 und 10 ein\n"); int s = input.nextInt(); if (s==z){ System.out.println("\nDu hast die Zahl erraten! Happy Birthday ;-)\n\n"); } else{ System.out.println("\nDie Zahl ist falsch! Versuch es nocheinmal!\n\n"); } } }
Frage: Wie baller ich da jetzt eine Schleife rein, sodass solange eine Zahl vom Benutzer gefragt wird, bis die ausgedachte Zahl vom PC erraten wurde?! Vielen Dank für eure Hilfe. Am besten mit Code helfen)
3 Antworten
Bitte denk das nächste mal den Code zu formatieren (durch 4 Leerzeichen vor der Zeile oder durch das Drücken des "Code" Symbols(Strg+k)
Folgender code ist in Eclipse mit java 1.6 getestet und funktioniert einwandfrei. (Achtung, ist nur die main Methode ohne Klasse ;))
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Willkommen zu Andy's Ratestunde");
int z = (int) Math.ceil(10*Math.random());
System.out.println("\nBitte gebe eine Zahl zwischen 1 und 10 ein");
int s = 0;
do
{
s = input.nextInt();
if(s > 0 && s <= 10 && s != z)
{
System.out.println("Die Zahl ist falsch! Versuch es nocheinmal!");
}
else if(s < 0 || s > 10)
{
System.out.println("Die Eingegebene Zahl muss zwischen 1 und 10 liegen.");
}
}
while(s != z);
System.out.println("\nDu hast die Zahl erraten, es war die Zahl '" + s + "'! Happy Birthday ;-)");
public class Ratestunde{
public static void main(String[] args){ Scanner input = new Scanner(System.in);
bool erraten = false;
System.out.println("\n Willkommen zu Andy's Ratestunde\n\n");
int z = (int) Math.ceil(10*Math.random());
int s = input.nextInt();
while(erraten == false)
{
System.out.println("\n\nBitte gebe eine Zahl zwischen 1 und 10 ein\n");
if (s==z){ System.out.println("\nDu hast die Zahl erraten! Happy Birthday ;-)\n\n"); erraten = true; }
else{ System.out.println("\nDie Zahl ist falsch! Versuch es nocheinmal!\n\n"); } } }
}
So würde ich das jetzt probieren !!!
PS. ich würde noch abfragen, ob die eingegebene Zahl zu groß oder zu klein ist und das dann ausgeben -> sonst weis man ja garnicht wo man weiter raten muss
Das funktioniert so nicht, da keine neue Eingabe aufgerufen wird.
int z = (int) Math.ceil(10*Math.random()); System.out.println("\n\nBitte gebe eine Zahl zwischen 1 und 10 ein\n"); int s = input.nextInt(); if (s==z){ System.out.println("\nDu hast die Zahl erraten! Happy Birthday ;-)\n\n"); } else{ System.out.println("\nDie Zahl ist falsch! Versuch es nocheinmal!\n\n"); } } }
wann endet die schleife? Unabhaengig davon dass ein desktop ... auch ein erechner bis vor wenigen minuten nicht denken kann und du per randdom() eine zufallszahl erzeugt hast .... ich dachte immer, das waere eine eingebaute funktion ;-)
Die Schleife soll dann enden, wenn die eingegebene Zahl mit der Zufallszahl übereinstimmt. Wenn nicht, dann soll ich so lange eine Zahl eingeben können, bis sie richtig ist. Sorry wenn ich mich etwas grob ausdrücke aber ich bin sehr neu in dem Gebiet ;-)
Ich scheine mich nicht ausgedrueckt zu haben ... es ging mir darum, dass Du Dir den zitierten teil mal anschaust und dann uebherlegst, was wann warum passiert, wann ein aussiegspunkt erreicht wird und warum.
Nein, ich gebe Dir keinen code, es ist Deine entwicklung, also ...... erarbeite den Dir schrittweise :-P
Vielen Dank, das werde ich gleich mal ausprobieren