Java :: Aufgabe #24

3 Lösungen Lösungen öffentlich

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.

Lösungen:

vote_ok
von oppahansi (300 Punkte) - 27.11.2013 um 01:02 Uhr
Quellcode ausblenden Java-Code
/*
 * Code written by Oppa Hansi, oppahansi on pastebin.
 */

import java.util.Random;
import java.util.Scanner;


public class ZahlenRaten {
	
	public static void main(String[] args){
		
		Scanner s = new Scanner(System.in);
		Random zufall = new Random();
		
		int zufallZahl = 0;
		
		boolean aktiv = true;
		
		String antwort = "";
		
		while(aktiv){

			System.out.println("Lustiges Zahlenraten");
			System.out.println("---------------------");
			System.out.println("Erraten Sie die Zufahlszahl in moeglichst wenigen Schritten!");
			System.out.println("Die Zahl kann zwischen 1 und 100 liegen");
			
			zufallZahl = 0 + zufall.nextInt(100- 0 + 1);
			int eingabe = 0;
			int versuche = 1;
			
			while(eingabe != zufallZahl){
				System.out.println("Bitte eine Zahl eingeben: ");
				eingabe = s.nextInt();
				
				if(eingabe < 0 || eingabe > 100){
					System.out.println("Ungültige Eignabe. Bitte Eingabe wiederholen:");
				}else if(eingabe < zufallZahl){
					System.out.println("Die gesuchte Zahl ist groesser!");
					versuche++;
				}else if(eingabe > zufallZahl){
					System.out.println("Die gesuchte Zahl ist kleiner!");
					versuche++;
				}else if(eingabe == zufallZahl){
					System.out.println("Sie haben die gesuchte Zahl gefunden!");
					System.out.println("Sie haben die " + zufallZahl + " in " + versuche + " Versuchen gefunden.");
					break;
				}
			}
			
			System.out.println("Weiter spielen? (j = Ja. | n = Nein.");
			antwort = s.next();
			if(antwort.compareTo("j") == 0){
				aktiv = true;
				System.out.println();
			}else{
				aktiv = false;
			}
		}	
	}
}
vote_ok
von ElPapito (2680 Punkte) - 08.05.2015 um 23:26 Uhr
Quellcode ausblenden Java-Code

/**
 * @author ElPapito
 * @date 08.05.2015
 */

import java.util.Scanner;

public class Zahlenraten {

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

		int random = (int) (1 + Math.random() * 100);
		int count = 0;

		System.out.println("Bitte erraten Sie die gesuchte Zahl, "
				+ "sie befindet sich zwischen 1 und 100.");

		int tipp = 0;
		while (tipp != random) {
			count++;
			System.out.print("Ihr " + count + ". Versuch: ");
			tipp = scanner.nextInt();

			if (tipp == random) {
				System.out.println("Glueckwunsch die von Ihnen eingegebene Zahl"
						+ " (" + tipp + ") "
						+ "stimmt mit der gesuchten Zahl ueberein.");
			} else if (tipp < random) {
				System.out.println("Die gesuchte Zahl ist groesser.");
			} else if (tipp > random) {
				System.out.println("Die gesuchte Zahl ist kleiner.");
			}
		}
		scanner.close();
	}

}

vote_ok
von tobiasbillen (210 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;
    }

}