Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hab eben ein kleines Ratespiel programmiert, wo eine Zufallszahl erzeugt wird aber nicht genannt wird, der Spieler hat 4 Versuche die Zahl zu erraten, nach jedem Versuch wird angegeben ob die eingegeben Zahl größer oder kleiner als die gesuchte Zahl ist.
Ich will nun, dass nach Ende des Spiels gefragt wird: Noch eine Runde? Tippe 1 für ja und 0 für nein an.
Wie krieg ich es hin, dass das Spiel von vorn anfängt? (mit einer neuen Zahl).
Hoffe jemand kann da helfen.
LG
Java:
import java.util.Scanner;
public class Ratespiel3{
public static void main(String[] args) {
// Ratespiel
int a = (int) ((Math.random() * 31) + 10); // Erzeugt zufallszahl
// zwischen 10 und 40
for (int i = 1; i <= 4; i++) { // for-schelife = 4 Rateversuche für DAU
Scanner sc = new Scanner(System.in);
System.out.println("Wie lautet ihre Zahl?");
int x = sc.nextInt(); // DAU gibt seine Zahl ein
if (x < a) {
System.out.println("Die gesuchte Zahl ist größer als " + x);
}
if (x > a) {
System.out.println("Die gesuchte Zahl ist kleiner als " + x);
}
if (x == a) {
System.out.println("Sie haben gewonnen, die gesuchte Zahl war "
+ a);
break; // Falls vorzeitig die gesuchte Zahl erraten wird, wird
// das Spiel beendet.
}
}
System.out.println("Die Gesuchte zahl war " + a); //Falls DAU nicht auf die Zuffalszahl kommt, wird dieser Satz angegeben.
// Soll neue Runde gespielt werden?
Scanner sc = new Scanner(System.in);
System.out
.println("Wollen sie nocheinmal spielen? \n Tippen sie \n '1' für JA \n '0' für NEIN");
int z = sc.nextInt();
if (z == 0) {
// Spiel beenden!!!!
} else {
// Spiel neustarten!!!!
}
}
}
pack doch einfach alles in ein "do-while"
am ende des programms fragst du eine eingegebene vriable ab und fütterst damit die while bedingung, und voila, das programm fängt von vorne an!
pack doch einfach alles in ein "do-while"
am ende des programms fragst du eine eingegebene vriable ab und fütterst damit die while bedingung, und voila, das programm fängt von vorne an!
hi und danke schonmal, habs jetzt mal probiert (hatte zuvor noch nie eine do-while gebraucht bzw verwendet) , vom Anblick sehe ich selbst sofort das es nicht ganz stimmt, nur kann ich ja den Scanner vom z ja nicht in die Do-Schleife setzten, dadurch kommt nur 1x ganz am Anfang die frage nach einem neuen Spiel und egal was man da angibt es spielt immer und immer wieder.
noch i.ein tip?
mein code nun:
Java:
import java.util.Scanner;
public class Ratespiel3{
public static void main(String[] args) {
// Ratespiel
Scanner sc = new Scanner(System.in);
System.out.println("Wollen sie nocheinmal spielen? \n Tippen sie \n '1' für JA \n '0' für NEIN");
int z = sc.nextInt();
do {
int a = (int) ((Math.random() * 31) + 10);
for (int i = 1; i <= 4; i++) {
Scanner sc1 = new Scanner(System.in);
System.out.println("Wie lautet ihre Zahl?");
int x = sc1.nextInt();
if (x < a) {
System.out.println("Die gesuchte Zahl ist größer als " + x);
}
if (x > a) {
System.out.println("Die gesuchte Zahl ist kleiner als " + x);
}
if (x == a) {
System.out
.println("Sie haben gewonnen, die gesuchte Zahl war "
+ a);
break;
}
}
System.out.println("Die Gesuchte zahl war " + a);
}
while (z != 0);
}
}
Leider doch nicht
Die Abfrage funktioniert einwandfrei, jedoch wird keine neue Zahl erzeugt wenn ich eine neue Runde spielen will...
Java:
import java.util.Scanner;
public class Ratespiel3{
public static void main(String[] args) {
// Ratespiel
int z;
do {
int a = (int) ((Math.random() * 31) + 10);
for (int i = 1; i <= 4; i++) {
Scanner sc1 = new Scanner(System.in);
System.out.println("Wie lautet ihre Zahl?");
int x = sc1.nextInt();
if (x < a) {
System.out.println("Die gesuchte Zahl ist größer als " + x);
}
if (x > a) {
System.out.println("Die gesuchte Zahl ist kleiner als " + x);
}
if (x == a) {
System.out.println("Sie haben gewonnen, die gesuchte Zahl war " + a);
break;
}
}
System.out.println("Die Gesuchte zahl war " + a);
Scanner sc = new Scanner(System.in);
System.out.println("Wollen sie nocheinmal spielen? \nTippen sie \n '1' für JA \n '0' für NEIN");
z = sc.nextInt();
}
while (z != 0);
}
}
komischer Zufall.
Hatte 8 Runden oder 9 Laufen lassen, war jedes mal die gleiche Zahl.
Eben jetzt waren es verschiedene
naja hat sich erledigt, danke!!