Zahl raten

Zulfiqar

Neues Mitglied
Hallo,

ich, als Anfänger, habe mir ein kleines Zahlen-raten-Spiel programmiert.
Als erstes soll der Spieler 1 seine Zahl eingeben zwischen 1 und 100 (Keine Zufall).
Dann soll geprüft werden, ob eine Zahl zwischen 1 und 100 eingegeben wurde. <-- Das klappt nicht: Wenn ich erst unter 1, dann über 100 und dann unter 1, geht es nicht mehr.
Dann ratet Spieler 2 die Zahl. Ratet er zu hoch, kommt die Meldung "Zu hoch". Ratet er zu klein, kommt die Meldung "Zu klein".

Der Code:
Java:
import java.util.Scanner;

public class Zahlenraten {

  public static void main(String[] args) {
  
    // Person 1 gibt eine Zahl ein
    System.out.println("Person 1: Geben Sie eine Zahl zwischen 1 und 100 ein!");
    Scanner s1 = new Scanner(System.in);
    int zahl = s1.nextInt();
  
    // Überprüfung ob Zahl zwischen 1 und 100 ist
    int kleinsteZahl = 1;
    int groessteZahl = 100;  
    do {
      if (zahl < kleinsteZahl) {
        System.out.println("Die Zahl muss höher sein!");
        Scanner s7 = new Scanner(System.in);
        zahl = s7.nextInt();
      } // end of if
      if (zahl > groessteZahl) {
        System.out.println("Die Zahl muss niedriger sein!");
        Scanner s2 = new Scanner(System.in);
        zahl = s2.nextInt();
      } // end of if
    } while ((zahl < kleinsteZahl)&&(zahl > groessteZahl)); // end of do-while
  
    // Anzeige welche Zahl eingegeben wurde
    System.out.println("Sie haben die Zahl " + zahl + " eingegeben.");
  
    // Person 2 ratet eine Zahl
    System.out.println("Person 2: Raten Sie, welche Zahl Person 1 eingegeben hat!");
    Scanner s3 = new Scanner(System.in);
    int gerateneZahl = s3.nextInt();
  
    do {
      if (gerateneZahl < zahl) {
        System.out.println("Zu klein!");
        Scanner s4 = new Scanner(System.in);
        gerateneZahl = s4.nextInt();
      } // end of if
      else if (gerateneZahl > zahl) {
        System.out.println("Zu groß!");
        Scanner s5 = new Scanner(System.in);
        gerateneZahl = s5.nextInt();
      } // end of if-else
    } while (gerateneZahl != zahl); // end of do-while
  
    // Wenn Person 2 richtig ratet
    System.out.println("Richtig! Das Spiel ist zu Ende!");
  
  } // end of main
} // end of class Zahlenraten

Gibt es auch eine Möglichtkeit, es ohne eine do-while-Schleife, sondern nur mit einer while-Schleife zu programmieren. Wenn ja wie?
 
Zuletzt bearbeitet von einem Moderator:
zur letzten Frage:
Java:
if (gerateneZahl < zahl) {
        System.out.println("Zu klein!");
        Scanner s4 = new Scanner(System.in);
        gerateneZahl = s4.nextInt();
      } // end of if
      else if (gerateneZahl > zahl) {
        System.out.println("Zu groß!");
        Scanner s5 = new Scanner(System.in);
        gerateneZahl = s5.nextInt();
      } // end of if-else
while(gerateneZahl!=zahl){
if (gerateneZahl < zahl) {
        System.out.println("Zu klein!");
        Scanner s4 = new Scanner(System.in);
        gerateneZahl = s4.nextInt();
      } // end of if
      else if (gerateneZahl > zahl) {
        System.out.println("Zu groß!");
        Scanner s5 = new Scanner(System.in);
        gerateneZahl = s5.nextInt();
      } // end of if-else
}
PS: sorry, weiß nicht, wie man den Code hier richtig posted ^^
statt (zahl < kleinsteZahl)&&(zahl > groessteZahl)
solltest du (zahl < kleinsteZahl)||(zahl > groessteZahl) nehmen :D
 
Zuletzt bearbeitet von einem Moderator:

Zulfiqar

Neues Mitglied
Danke es klappt!
statt (zahl < kleinsteZahl)&&(zahl > groessteZahl)
solltest du (zahl < kleinsteZahl)||(zahl > groessteZahl) nehmen :D
Daran lag es! :D

zur letzten Frage:
while(gerateneZahl!=zahl){
if (gerateneZahl < zahl) {
System.out.println("Zu klein!");
Scanner s4 = new Scanner(System.in);
gerateneZahl = s4.nextInt();
} // end of if
else if (gerateneZahl > zahl) {
System.out.println("Zu groß!");
Scanner s5 = new Scanner(System.in);
gerateneZahl = s5.nextInt();
} // end of if-else
}
Den Teil davor kann man glaube ich weglassen. :) Aber so funktioniert!

PS: sorry, weiß nicht, wie man den Code hier richtig posted ^^
Oben rechts gibt es die Option "Einfügen", wo man den "Code" auswählen kann. :)[/QUOTE]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Interpreter-Fehler Java Zahl Raten Spiel- Fehlermeldung mir unbekannt Allgemeine Java-Themen 12
O Dateinamen mit Zahl um eins erhöhen Allgemeine Java-Themen 16
B Millionen bit lange zahl bauen? Allgemeine Java-Themen 7
J Zerlegen einer Zahl Allgemeine Java-Themen 6
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
Tronert Alphabetische Aufzählung aus Zahl? Allgemeine Java-Themen 5
E String in Zahl umwandeln, ohne Befehl Integer.parseInt Allgemeine Java-Themen 3
E Swing andere schreibart für jButtoni (i = Zahl des Buttons) Allgemeine Java-Themen 6
J Eine bestimmte Zahl im Integer ändern Allgemeine Java-Themen 9
J While Schleife ausführen bis Zahl = X Allgemeine Java-Themen 19
J Repräsentation in Java - 32bit Zahl Allgemeine Java-Themen 8
T Quadrieren einer Zahl nur durch Addition Allgemeine Java-Themen 5
Chr1s ergebnis = Zahl? Allgemeine Java-Themen 3
A Zahl abgerundet obwohl Double Allgemeine Java-Themen 9
J Die Menge einer Zahl im Binärbaum zählen Allgemeine Java-Themen 7
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
A Zahl zu lang für Long Allgemeine Java-Themen 3
L Leerzeichen zu string hinzufügen, um eine gerade zahl zu erhalten Allgemeine Java-Themen 9
O Prüfen ob String eine Zahl mit maximal 2 Nachkommastellen ist Allgemeine Java-Themen 4
N Zahl mit bestimmter Länge und nur bestimmten Zahlen generieren lassen Allgemeine Java-Themen 7
J Bestimmter Buchstabe = bestimmte Zahl Allgemeine Java-Themen 10
H Eclipse x Stellen einer Zahl in array speichern Allgemeine Java-Themen 3
S Antlr Grammatik übersetzt ohne Fehler, dennoch wird Zahl nicht als Eingabe erkannt Allgemeine Java-Themen 4
C Zahl im Textarea anzeigen lassen Allgemeine Java-Themen 8
C Regex: Zahl ohne führende Null Allgemeine Java-Themen 13
cedi int Zahl in ein ASCII zeichen umwandeln und dieses in ein externes Textfenster schreiben Allgemeine Java-Themen 6
Rudolf Aus Collection<Integer> eine Zahl machen Allgemeine Java-Themen 2
M Zahl aktiver Threads einer Gruppe verlässlich abfragen Allgemeine Java-Themen 3
C Prüfen auf Zahl und 6 stellig fehlerhaft? warum? Allgemeine Java-Themen 7
S Zahl konvertieren [Internationalisierung l10n, l18n] Allgemeine Java-Themen 4
T Zufallszahlen generieren und dabei eine Zahl weglassen Allgemeine Java-Themen 4
Z Zahl einer spanne zuordnen Allgemeine Java-Themen 2
FoolMoon Elegante Möglichkeit die kleinste Zahl zu ermitteln. Allgemeine Java-Themen 7
E Konstante Zahl Threads parallel rechnen lassen Allgemeine Java-Themen 6
L Berechnung mit Module bis bes.timme Zahl erreicht. Allgemeine Java-Themen 4
Ark O-Notation und Zahl versus String-Repräsentation Allgemeine Java-Themen 7
N int[] eindeutig durch eine Zahl repräsentieren Allgemeine Java-Themen 12
D Regular Expression Mit Punkt und Zahl Allgemeine Java-Themen 4
X Substring aus Zahl Allgemeine Java-Themen 8
G Auf eine ganze Zahl aufrunden Allgemeine Java-Themen 30
G Zahl aus dem String Allgemeine Java-Themen 6
K Double-Zahl runden Allgemeine Java-Themen 4
L Partitionen der Länge x einer natürlichen Zahl n Allgemeine Java-Themen 21
G Prüfen ob Ziffern einer Zahl pandigital sind? Allgemeine Java-Themen 15
J Große Zahl (double) as text ausgeben? Allgemeine Java-Themen 2
0 Alle Teiler einer Zahl performant berechnen? Allgemeine Java-Themen 9
G Double Zahl quadrieren Allgemeine Java-Themen 8
G String in Zahl umwandeln Allgemeine Java-Themen 9
C Server-Zahl von google.com Allgemeine Java-Themen 11
B Umwandeln von Bytes in float Zahl (DataInputStream) Allgemeine Java-Themen 3
H ganze zahl true / false Allgemeine Java-Themen 3
M Umwandeln String (mit Zahl zur Basis 36) in Dezimalzahl Allgemeine Java-Themen 2
N Float zahl auf eine Stelle nach dem Komma runden Allgemeine Java-Themen 3
G Double Zahl auf 4 Stellen hinter Komma kuerzen Allgemeine Java-Themen 4
S addAtPosition - Zahl an einer bestimmten Position einfügen Allgemeine Java-Themen 8
G String als Zahl erkennen Allgemeine Java-Themen 19
N Zahl mit DecimalFormat formattieren Allgemeine Java-Themen 2
R Zahl eingeben! Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben