Antwort
So, da du meine andere Antwort nicht verstanden hast, habe ich dir dein Programm mit der Raten Methode so geschrieben, wie ich's machen würde.
Man beachte, ich habe für die Variablen keine einzelnen Buchstaben verwendet, sondern aussagekräftige Namen, so kann es auch zu keinen Verwechslungen kommen. Bitte verinnerliche dies bei deinen Programmen. Außerdem, schreibe Kommentare bzw. JavaDocs zu deinen Methoden
public class Raten {
public static int versuche = 0;
public static int gesuchteZahl = 13;
public static void main(String[] args) {
raten(0, 1000);
System.out.println("Der Computer hat " + versuche + " versuche gebraucht, um die Zahl zu erraten.");
}
/**
*
* @param minZahl Die untere Grenze der gesuchten Zahlen
* @param maxZahl Die obere Grenze der gesuchten Zahlen
* @return die geratene Zahl
*/
public static int raten(int minZahl, int maxZahl){
versuche++;
Random random = new Random();
int gerateneZahl = random.nextInt(maxZahl - minZahl + 1) + minZahl;
if(gerateneZahl < gesuchteZahl){
return raten(gerateneZahl, maxZahl);
} else if(gerateneZahl > gesuchteZahl){
return raten(minZahl, gerateneZahl);
} else {
return gerateneZahl;
}
}
}
Der Computer hat 20 versuche gebraucht, um die Zahl zu erraten.