Java :: Aufgabe #25

4 Lösungen Lösungen öffentlich

Zahlen erraten lassen.

Anfänger - Java von zayc_ - 28.12.2012 um 14:08 Uhr
Programmiere ein Programm, welches eine vom User erdachte Zahl (Integer) in einem vom User angegebenen Bereich Erraten soll.

Konsolenausgabe:


Bitte Untergränze angeben: 0
Bitte Obergränze angeben: 100

Bitte geben sie nach jedem versuch R,G oder K an. je nachdem ob
R die Zahl richtig ist
G die gesuchte Zahl grösser ist
K die gesuchte Zahl kleiner ist



1. Versuch: 50.
k
2. Versuch: 25
g
3. Versuch: 37
g
4. versuch: 42
g
5. Versuch: 46
k
6. Versuch: 44
k
7. Versuch: 43
r
Die gesuchte Zahl war also die 43!



Lösungen:

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

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

public class CompZahlErraten {

	public static void main(String[] args) {
		
		Scanner s = new Scanner(System.in);
		Random zufall = new Random();
		boolean aktiv = true;
		
		int untergrenze;
		int obergrenze;
		int compZahl = 0;
		int zaehler = 1;
		
		String antwort = "";
		
		while(aktiv){
			System.out.print("Bitte Untergrenze angeben: ");
			untergrenze = s.nextInt();
			System.out.println();
			System.out.print("Bitte Obergrenze angeben: ");
			obergrenze = s.nextInt();
			System.out.println();
			System.out.println("Bitte geben Sie nach jedem Versuch g, k oder r an.");
			System.out.println("g: Die Zahl ist groesser.");
			System.out.println("k: Die Zahl ist kleiner.");
			System.out.println("r: Die Zahl ist richtig.");
			System.out.println("\n\n");
			
			zaehler = 1;
			
			while(antwort.compareTo("r") != 0){
				compZahl = untergrenze + zufall.nextInt(obergrenze-untergrenze+1);
				if(compZahl == untergrenze || compZahl == obergrenze){
					continue;
				}
				System.out.print(zaehler + ". Versuch: " + compZahl + "\n");
				antwort = s.next();
				if(antwort.compareTo("g") == 0){
					untergrenze = compZahl;
					zaehler++;
				}else if(antwort.compareTo("k") == 0){
					obergrenze = compZahl;
					zaehler++;
				}
			}
			
			System.out.println("Die gesuchte Zahl ist also die " + compZahl + "!");
			aktiv = false;
		}
	}
}
1x
vote_ok
von ElPapito (2690 Punkte) - 09.05.2015 um 00:05 Uhr
Quellcode ausblenden Java-Code

/**
 * @author ElPapito
 * @date 09.05.2015
 */

import java.util.Scanner;

public class Zahlenraten {

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

		System.out.print("Bitte die Untergrenze angeben: ");
		int min = scanner.nextInt();
		System.out.print("Bitte die Obergrenze angeben: ");
		int max = scanner.nextInt();
		System.out.println();

		int count = 0;

		System.out.println("Bitte geben Sie nach jedem Versuch R, G oder K an. "
				+ "Je nachdem ob");
		System.out.println("R die Zahl richtig ist.");
		System.out.println("G die gesuchte Zahl groesser ist.");
		System.out.println("K die gesuchte Zahl kleiner ist.");
		System.out.println();

		char c;
		while (true) {
			count++;

			int tipp = (min + max) / 2;
			System.out.println(count + ". Versuch: " + tipp);
			c = scanner.next().toUpperCase().charAt(0);

			if (c == 'R') {
				System.out.println("Die gesuchte Zahl war also die " + tipp
						+ ".");
				break;
			} else if (c == 'K') {
				max = tipp - 1;
			} else if (c == 'G') {
				min = tipp + 1;
			}
		}

		scanner.close();
	}

}

vote_ok
von paddlboot (3970 Punkte) - 09.07.2019 um 09:36 Uhr
Quellcode ausblenden Java-Code
import java.util.*;
import java.util.concurrent.ThreadLocalRandom;

public class Zahlenerraten {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int untergrenze, obergrenze, versuch;
		String eingabe = "";
		int counter = 1;
		boolean richtig = false;
		
		System.out.print("Bitte Untergrenze angeben:\t");
		untergrenze = scanner.nextInt();
		System.out.print("Bitte Obergrenze angeben:\t");
		obergrenze = scanner.nextInt(); 
		
		System.out.println("Bitte geben Sie nach jedem Versuch R, G oder K an, je nachdem ob");
		System.out.println("R\tdie Zahl richtig ist");
		System.out.println("G\tdie gesuchte Zahl größer ist");
		System.out.println("K\tdie gesuchte Zahl kleiner ist");
		
		System.out.print("\n\n");
		
		do {
			System.out.print(counter + ". Versuch:\t");
			versuch = ThreadLocalRandom.current().nextInt(untergrenze, obergrenze);
			System.out.print(versuch);
			eingabe = scanner.next();
			
			switch(eingabe) {
			case "K":
			case "k":
				obergrenze = versuch;
				break;
			case "G":
			case "g":
				untergrenze = versuch;
				break;
			case "R":
			case "r":
				richtig = true;
				break;
			}
			counter++;
		}while(richtig == false);
		
		System.out.print("Die gesuchte Zahl war also " + versuch + "!");
		
		scanner.close();
	}
}
vote_ok
von 0 (0 Punkte) - 11.04.2021 um 11:36 Uhr
Quellcode ausblenden Java-Code
import java.util.Random;
import java.util.Scanner;

public class ZahlenErratenLassen {

    private static int versuche;
    private static int versuch;

    private static int obergrenze;
    private static int untergrenze;

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.print("Bitte Untergrenze angeben: ");
        untergrenze = scanner.nextInt();

        System.out.print("Bitte Obergrenze angeben: ");
        obergrenze = scanner.nextInt();

        System.out.println(" ");

        System.out.println("Bitte geben sie nach jedem Versuch R, G oder K an. Je nachdem ob R die Zahl richtig ist, G die gesuchte Zahl größer ist, K die gesuchte Zahl kleiner ist.");
        System.out.println(" ");
        System.out.println(" ");

        versuche = 0;

        while (!programmVersuch()) {}

        System.out.println("Die gesuchte Zahl war also die " + versuch + "!");

    }

    private static boolean programmVersuch() {

        Random random = new Random();

        versuch = random.nextInt(obergrenze-untergrenze) + untergrenze;

        Scanner scanner = new Scanner(System.in);

        System.out.println(versuche + ". Versuch: " + versuch);

        String input = scanner.nextLine();

        if (input.equalsIgnoreCase("r")) {
            return true;
        }

        if (input.equalsIgnoreCase("k")) {
            obergrenze = versuch-1;
        } else if (input.equalsIgnoreCase("g")) {
            untergrenze = versuch+1;
        }

        return false;
    }

}
2153683

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.