Rekursion (3)
Der Computer kreist eine Zahl ein
Im folgenden Programm rät der Computer eine Zahl zwischen 1 und 1000.
Er beginnt bei 512 und halbiert mit jedem Durchlauf das infrage kommende
Intervall.
import java.util.*;
public class Zahlenraten {
static Scanner Eingabe = new Scanner(System.in);
static int versuche=0;
static void guess(int tipp, int veränderung) {
versuche++;
if (veränderung==0) {
System.out.println("\nDu mogelst!");
}
System.out.println("\nBereich reicht von "+(tipp-veränderung)+"
bis "+(tipp+veränderung));
System.out.print("Ist "+tipp+" zu viel, zu wenig oder ok?
v/w/o ");
String antwort = Eingabe.next();
if (antwort.equals("o")) {
System.out.println("\nGeschafft mit "+versuche+"
Versuchen.");
} else {
if (antwort.equals("v")) {
guess(tipp-veränderung/2,veränderung/2);
} else {
guess(tipp+veränderung/2,veränderung/2);
}
}
}
public static void main(String[] args) {
System.out.println("Zahlenraten\n");
System.out.println("Denk dir eine Zahl zwischen 1 und
1000.");
System.out.println("Mit maximal zehn Fragen habe ich sie
raus.");
System.out.print("Ok? j/n ");
String antwort = Eingabe.next();
if (antwort.equals("j")) {
guess(512,512);
} else {
System.out.println("Na, dann nicht!");
}
}
}
Aufgabe: