Java :: Aufgabe #24 :: Lösung #3

4 Lösungen Lösungen öffentlich
#24

Zahlen Raten - Anfänger

Anfänger - Java von zayc_ - 28.12.2012 um 13:49 Uhr
Das zu Programmierende Programm soll eine zufallszahl (integer, <=1, >=100) generieren.
Der User soll diese erraten. Nach jedem versuch soll der User darüber informiert werden, der wie vielte Versuch es war, ob er richtig oder falsch liegt, und wenn er falsch liegt ob die gesuchte Zahl grösser oder kleiner als die vom User eingegebene ist.


Beispiel einer Konsolenausgabe:

Konsolenausgabe:


Bitte erraten sie die gesuchte zahl, sie befindet sich wichen 1 und 100.
ihr 1. Versuch: 6
die gesuchte Zahl ist Kleiner.
ihr 2. Versuch: 2
die gesuchte Zahl ist Grösser.
ihr 3. Versuch: 4
Glückwunsch die von Ihnen eingegebene Zahl ( 4 ) stimmt mit der gesuchten Zahl Überein.
#3
vote_ok
von tobiasbillen (220 Punkte) - 18.07.2019 um 21:43 Uhr
Quellcode ausblenden Java-Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 *
 * @author tobias
 */
public class Zahlenraten {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        
        int min = 1;
        int max = 100;
        
        int randomCount = getRandomNumber(min,max);
        int userCount = 0;
        boolean countIsfound = false;
        int countTry = 1;
        System.out.println("Bitte erraten sie die gesuchte Zahl, sie befindet sich zwichen " + min + " und " + max + ".");
        while(!countIsfound){            
            System.out.print("Ihr " + countTry + ". Versuch: Bitte geben Sie eine Zahl ein:");
            userCount = getUserCount(min, max);
            if(userCount == randomCount){
                countIsfound = true;
            }else{
                if(randomCount < userCount){
                    System.out.println("Die gesuchte Zahl ist kleiner als " + userCount);
                }else{
                    System.out.println("Die gesuchte Zahl ist größer als " + userCount);
                }
                countTry += 1;
            }  
        }
        System.out.println("Sie haben die Zahl " + randomCount + " in " + countTry + " gefunden.");
     }
    
    public static int getUserCount(int min, int max){
        int ergebnis = -1;
        try{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            ergebnis =  Integer.parseInt(br.readLine());

        }catch (IOException | NumberFormatException e){
            System.out.println("Es ist ein Fehler aufgetreten. Sie dürfen nur Zahlen eingeben.");
            return getUserCount(min, max);
        }
        if(ergebnis > min && ergebnis <= max){
            return ergebnis;
        }else{
            System.out.println("Das gesuchte befindet sich zwischen " + min + " und " + max + ". Bitte geben Sie erneut eine Zahl ein.");
            return getUserCount(min, max);
        }
    }
    
    public static int getRandomNumber(int min, int max){
        double x = (Math.random() * ((max - min) + 1)) + min;
        return (int) x;
    }

}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2097026

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.