C
cryptonize
Gast
Hallo erstmal,
ich habe versucht ein Programm zu schreiben, dass erst 2 Zufallszahlen im Bereich von 1 und 100 erstellt.
Dann muss sich der Benutzer eine Zahl in diesem Bereich denken und das Programm versucht die zahl in möglichst wenigen Schritten herauszubekommen .
Der Benutzer wird gefragt , ob die zahl größer als der Mittelwert der beiden Zahlen ist (usw...)
Aber so wie ich es beschrieben habe funktioniert es bei mir nicht:'(
Wäre nett wenn ihr es euch mal anschaut...
Schon mal danke im voraus
ich habe versucht ein Programm zu schreiben, dass erst 2 Zufallszahlen im Bereich von 1 und 100 erstellt.
Dann muss sich der Benutzer eine Zahl in diesem Bereich denken und das Programm versucht die zahl in möglichst wenigen Schritten herauszubekommen .
Der Benutzer wird gefragt , ob die zahl größer als der Mittelwert der beiden Zahlen ist (usw...)
Aber so wie ich es beschrieben habe funktioniert es bei mir nicht:'(
Wäre nett wenn ihr es euch mal anschaut...
Schon mal danke im voraus
Code:
//Quicksort mit zahlen
import java.util.*;
class Qsfunk{
double speicher;
int erg;
double zufall(){
Random eins = new Random();
speicher = eins.nextDouble();
return speicher;
}
boolean zufallcheck(double zufall1, double zufall2){
if (zufall1<zufall2){
return false;
}
return true;
}
boolean check(int mitte, int oben){
if(oben-mitte==1)
return false;
return true;
}
}
class Qs{
public static void main (String args[])
throws java.io.IOException{
Qsfunk ob = new Qsfunk();
char eingabe;
double zufall1 , zufall2 ;
int gesammt, mitte , erg, zwischen, oben, unten, differenz;
for(;;){ //Endlosschleife Anfang
zufall1 = Math.round(Math.abs(ob.zufall()*100));
zufall2 = Math.round(Math.abs(ob.zufall()*100));
if(ob.zufallcheck(zufall1, zufall2)){
ob.zufall();
}
else break;
} //Endlosschleife Ende
gesammt = (int) (zufall1 +zufall2);
System.out.println("Du denkst dir eine Zahl zwischen "+ zufall1+ " und " + zufall2+" und der Computer errät sie");
mitte= (int)Math.floor(gesammt /2);
System.out.println("Ist die Zahl größer als"+ mitte+" 1 = ja : 2 = nein");
one:
for(;;){
System.out.println("Ist die Zahl größer als"+ mitte+" 1 = ja : 2 = nein : 3 = gleich");
unten=(int) zufall1;
oben =(int) zufall2;
eingabe = (char) System.in.read();
if(eingabe=='1') //JA
{
differenz= oben- mitte;
zwischen = mitte;
mitte= mitte + differenz / 2;
unten = zwischen;
if(ob.check(mitte, oben)){
erg=oben;
break;
}
}
if(eingabe=='2') //NEIN
{
differenz= mitte- unten;
zwischen= mitte;
mitte= unten+ differenz/2;
oben = zwischen;
if(ob.check(mitte, oben)){
erg=oben;
break;
}
}
if(eingabe=='3') //GLEICH
{
erg= mitte ;
break;
}
}
System.out.println("Das Ergebnis ist:"+ erg);
}}