Java :: Aufgabe #25
4 Lösungen
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:
/*
* 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;
}
}
}
/**
* @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();
}
}
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();
}
}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;
}
}
