# Ratespiel



## skuzzle (28. Okt 2010)

Hey leute, 
ich lerne zur zeit java und mache sozusagen eine art tutorial mit übungsaufgaben etc und komme ansich sehr gut voran. Allerdings bereitet mir die aufgabenstellung eines "guessing games" probleme da ich hier überhaupt nicht weiss wie ich vorgehen muss. Bei dem spiel geht es darum das der Computer sich eine Zahl zwischen 1 und 100 ausdenkt und ich als "rater" diese tippen muss. bei falscher zahl soll entweder "tipp zu hoch" "tipp zu niedrig" oder "die zahl war richtig" erscheinen. 
Grundsätzlich ist das ja nicht so schwer aber es hapert an der umsetzung :/ so soll das aussehen allerdings fehlt in der mitte natürlich etz no code ich hab scho zig sachen probiert aber nix ordentliches kam bei raus :/


```
protected int Rateversuch(int myGuess) {
		int result;

		

		System.out.println("Der " + ++AnzahlVersuche + ". Tipp \"" + Rateversuch + "\" ist " + (result < 0 ? "zu niedrig" : result > 0 ? "zu hoch" : "Exakt"));
		return result;
```

Dann gibts noch ne anweisung das eben ein menschlicher spieler die zahl erraten soll
aber das grosse problem das der computer selber eine zahl erraten soll und "vorgibt" diese nicht zu kennen um dann mit möglichst wenig versuchen diese zahl zu erraten und absichtlich drüber oder drunter schätzt :/ ahhhh ich werd irre 
aber wäre wirklich verdammt dankbar für ein paar lösungsansätze mir fehlen hauptsächlich eben noch die bestimmten befehle :/


----------



## mariusbopp (28. Okt 2010)

okay sowas ähnliches habe ich heute auch gemacht 
also wie du die zufallszahl ermittelst is hier im forum heute besprochen worden musst du mal gucken
hier!!

desweiteren kannst du die eingabe über einen bufferdReader machen den string in int umwandeln und das ganze mit der erzeugten zahl vergleichen!

guck ma ob du was mit anfangen kannst ;-)


----------



## Andi_CH (28. Okt 2010)

Der computer soll eine Zahl erraten?

Schau mal hier - da werden sie geholfen


----------



## SlaterB (28. Okt 2010)

sehr sehr entfernt..

es geht um elementare Schritte, z.b. eine Zahl von einem Benutzer einlesen,
dafür muss man nicht an irgendein Spiel denken, das ist für sich Thema genug,

wenn man 20 derartige Einzelthemen kennt (z.B. verteilt über die ersten 100 Seiten eines Lehrbuchs) dann hat man langsam alles zusammen

edit: es ist nicht falsch, sich ein konkretes Ziel wie ein Ratespiel vorzunehmen, 
aber dann erschlagen von der Komplexität davorzusitzen hilft auch nicht,
Schritt für Schritt arbeiten, große Aufgaben in kleine zerlegen

------

> und "vorgibt" diese nicht zu kennen [..] und absichtlich drüber oder drunter schätzt :/ ahhhh

so schwer ist das nicht, die Zahl zu kennen und gleich richtig zu raten wäre Intelligenz, man müsste schon direkt programmieren dass der Wert einer bestimmten Variable (gesuchteZahl) angeschaut und übertragen wird (nach aktuellerRateversuch),
wenn man das schlicht nicht so programmiert, dann passiert das auch nicht, der Computer wird nicht im Hintergrund rumtricksen und auf geheime Wege doch schon richtig raten


----------



## skuzzle (28. Okt 2010)

Andi_CH hat gesagt.:


> Der computer soll eine Zahl erraten?
> 
> Schau mal hier - da werden sie geholfen



ja der computer  und das is ja mein problem ich hab keine ahnung wie wo was ich eben wie definieren soll das der computer die zahl die er sich aussucht plötzlich nich mehr kennt und versucht se zu erraten :/ das mit den lottozahlen hilft mir ja zumindest beim generieren bzw raussuchen scho ganz gut aber sozusagen das der mr. pc selber mit sich spielen soll boah da bin ich echt überfragt  

und ja klar kleine schritte sind gut allerdings is das problem das ich ein wenig in zugzwang steh und die grundlagen relativ schnell aufm kasten haben soll :/


----------



## ARadauer (28. Okt 2010)

1. woher kommt die zu eratende zahl result?
2. warum gibst du die zu eratende zahl als ergebnis zurück, währe nicht die anzal der versuche schlauer?
3. warum übergibst du die eingabe des benutzer als parameter?
4. soll dann in der methode die zufallszahl erzeugt werden.. is ja blöd dann ändert sie sich ja dauernd..

lol
so schwer kann das doch nicht sein..

1. zufallszahl ermitteln
2. variable mit versuche mit 0 initialiseren
3. zahl vom benutzer eingeben lassen
4. while(zahl vom benutzer != zufallszahl=
4 a. ausgabe zu klein/zu groß, anzahl der versuche
4 b. neue zahl eingeben lassen
5 rückgabe der versuche...


----------



## skuzzle (28. Okt 2010)

ARadauer hat gesagt.:


> 1. woher kommt die zu eratende zahl result?
> 2. warum gibst du die zu eratende zahl als ergebnis zurück, währe nicht die anzal der versuche schlauer?
> 3. warum übergibst du die eingabe des benutzer als parameter?
> 4. soll dann in der methode die zufallszahl erzeugt werden.. is ja blöd dann ändert sie sich ja dauernd..
> ...



der java code den ich gepostet hab war schon von vornherein konstruiert im zwischenraum steht // TODO ergo hab ich mit der erstellung des codes nix am hut ich soll lediglich das fehlende zeug selber reinschreiben


----------



## mariusbopp (28. Okt 2010)

du denkst glaube ich falsch las den "computer" die erste random zahl zwischen 1-100 erzeugen speicher diese in einer var z.b int pcZahl
dann erzeuchst du eine 2te zahl welche dann auch eriner var zugeordnet wird.
danach vergleichen... oder der einfachheit halber ertsmal in ner if anweisung...

if (pcZahl!=randomZahl)
System.out.println("der computer hat die zahl nicht erraten!");
else
.
.
.


----------



## SlaterB (28. Okt 2010)

@skuzzle
da du 'kleine Schritte' zitierst, gehe ich davon aus dass du den Rest zu 'auch Computer können doof sein' genauso gelesen hast,
da du immer noch ungläubig bist, zumindest dazu ein kleines Beispiel, will dir aber nicht alle 20 Einzelschritte erklären 


```
public class Test
{
    public static void main(String[] args)
    {
        Random r = new Random();
        int x = 4;
        int y = r.nextInt(20);
        System.out.println("x ist " + x + ", ich rate: " + y);
    }
}
```
hier kann y gleich 4 sein oder auch wahrscheinlicher volle Kanne daneben einer der möglichen anderen Werte,
der Code so programmiert ist unbestechlich, egal ob die Variable x da ist oder nicht


----------



## ARadauer (28. Okt 2010)

> zahl die er sich aussucht plötzlich nich mehr kennt und versucht se zu erraten


eine schleife von 0 bis 10000000 vielleicht vergisst er sie..

zufallszahl zwischen 0 und 100, dein computernimmt die hälte ..50 ... zahl zu groß, also muss sie zwischen 0 und 50 liegen.. 25
 zu klein.. also muss sie zwischen 25 und 50 liegen... 37 zu groß, also zwischen 25 und 37.. wir kommen der sache schon näher.. so lange machen bis gewählte zahl die zufallszahl ist...


----------



## skuzzle (28. Okt 2010)

SlaterB hat gesagt.:


> @skuzzle
> da du 'kleine Schritte' zitierst, gehe ich davon aus dass du den Rest zu 'auch Computer können doof sein' genauso gelesen hast,
> da du immer noch ungläubig bist, zumindest dazu ein kleines Beispiel, will dir aber nicht alle 20 Einzelschritte erklären
> 
> ...



also der code sagt sozusagen aus das eine zahl für y zwischen 1 und 20 zufällig geraten wird geh ich da recht in der annahme ? ok des wär ja schonmal gut ergo vergleich ich die dann mit ner if schleife und sag ob diese dann zu hoch oder zu niedrig is blablabla und iwann wird er dann draufkommen wenn ich das alles so richtig interpretier  aber das meinte ich mit mangelnder kenntnis zu den einzelnen befehlen :/ aber etz leuchtet mir das ein so halbwegs  und auch der vorschlag erstma den bereich zu halbieren und dann zu sehen wo er eigentlich steht is au clever danke  so einfach hab ich etz gar nich gedacht


----------



## mariusbopp (28. Okt 2010)

vill erstmal versuchen 2 zufällige zahlen zu erzeugen und diese dann vergleichen und dann immer weiter darauf aufbauen?!...

klick mal hier!


----------



## skuzzle (28. Okt 2010)

mariusbopp hat gesagt.:


> vill erstmal versuchen 2 zufällige zahlen zu erzeugen und diese dann vergleichen und dann immer weiter darauf aufbauen?!...
> 
> klick mal hier!



na ja das is ja im endeffekt so der vorschlag von Aradauer die zahl 50 zu nehmen und zu entscheiden ob die zu hoch oder niedrig is und dann eben muss se zwischen 0 50 oder 51 100 liegen etc pp


----------



## mariusbopp (28. Okt 2010)

naja nicht ganz.... ich würde das annäherungsweiße erraten der zahl erst später machen wenn es soweit funktioniert das der pc sich zahlen ausdenkt und so... dann kommst du langsam mal bischen in java rein und dann fällt es dir auch nicht so schwer! hast du hscon einen ansatz geschrieben bis auf das ganz oben??


----------



## skuzzle (28. Okt 2010)

ne hab etz no nix geschrieben weil ich erstma einkaufen muss und ich vermutlich da was weiss ich wie lang rumhocken werde 
aber im groben is des doch dann etwa wie 

public int Zufallszahl(int 100) {
        return  (int) ((Math.random()*100)+1);

if "zu erratene zahl" < Zufallszahl  System.out.println("zu hoch")
else if "zu erratene zahl" > Zufallszahl  System.out.println("zu niedrig")
else  System.out.println("Korrekt") 

also etz wirklich nur grob gesagt halt über die feinheiten etc pp muss ich mir dann natürlich no gedanken machen :/

und bei der zu erratenen zahl isses doch des gleiche oder also da mach ich davor einfach nomal 

public int "zu erratene Zahl"(int 100) {
        return (int) ((math.random()*100+1);


----------



## mariusbopp (28. Okt 2010)

```
package ratespiel;
public class Main
{

    public static int Zahl(int n){
        double dezimalZahl = Math.random();
        int ganzZahl = (int)Math.round( dezimalZahl * n );
        return ganzZahl;

    }//ende Zahl


    public static void main( String[] args ){
         int zahl1 = Zahl(5);
         int zahl2 = Zahl(5);
         
     if(zahl1!=zahl2)
         System.out.println("die zahl wurde nicht erraten");
     else
         System.out.println("die zahl wurde erratendie zahl war: "+zahl1);


    }//ende main

}//ende Main
```

dann mach noch hier und da ne schleife und 1-2 andere änderungen und dann hast du das erste gelöst


----------



## skuzzle (28. Okt 2010)

ahh ok cool cool dann werd ich mich dann da heut abend ma hinhocken und mein ergebnis präsentieren  aber dank deiner und der hilfe der anderen blick ich zumindest halbwegs durch wie wo was ich grob zu tun hab sehr schön  ou man demjenigen nen nobelpreis der ne sprache erfindet die fließtext verarbeiten kann 

ach ja aber spielt doch keine rolle ob ich etz math.round (dezimalzahl*n) 
oder math.random*n+1 schreib oder


----------



## mariusbopp (28. Okt 2010)

skuzzle hat gesagt.:


> ou man demjenigen nen nobelpreis der ne sprache erfindet die fließtext verarbeiten kann



:lol:

schön das es dir weiter hilft dann poste mal deine lösung wenn du sie hast!!! und bei fragen frag


----------



## c_sidi90 (28. Okt 2010)

Das wäre auch ein Ansatz

```
private void raten(){

InputStreamReader input = new InputStreamReader(System.in);
BufferedReader eingabe = new BufferedReader(input);

String tipp = "";
int anzahlVersuche = 3;  //Wenn der Spieler z.B nur 3 Versuche haben soll
int zufallszahl = (int)(Math.random()*5); //Je nachdem bis wohin die zu erratene Zahl gehen soll.

while(versuche>0){

       System.out.println ("Geben Sie Ihren Tipp ab..");
       String = eingabe.readLine();

       if (Integer.parseInt(tipp) == zufallszahl){
         System.out.println ("Sie haben Gewonnen, die gesuchte Zahl lautet " + zufallszahl);
       }

       else { 
       System.out.println ("Leider Falsch, Sie haben noch " + versuche-1 + " Versuche");
       }
       versuche = versuche -1 ;
}
```
 ISt nicht der eleganteste Weg aber man bekommt einen Ansatz vermittelt. Du musst bei dieser Lösungsvariante allerdings noch eine prüfung Schreiben damit die Zufallszahlen nicht doppelt sind, das wäre ja doof wenn man zahlen von 0-6 nimmt und die Zufallszahl 6x "6" ist.

Mfg


----------



## skuzzle (28. Okt 2010)

ach ja aber spielt doch keine rolle ob ich etz math.round (dezimalzahl*n)
oder math.random*n+1 schreib oder 

und c sidi90
da bin ich grad a bissi überfordert mit dem streamreader etc  soweit bin ich no nich  also mir wurde eben gesagt ich könne das mit den if schleifen etc locker lösen  und so sachen wie integer.parseint etc überfordern mich grad no


----------



## c_sidi90 (28. Okt 2010)

achso, das sind halt Sachen damit du überhaupt was eingeben kannst, du musst ja eine Zahl tippen damit geprüft werden kann ob es die richtige Zahl ist. Dafür dient der Input & BufferedReader, sie übergeben Eingaben vom Benutzer (Tastatur) an eine Variable und prüfen Sie dann auf gleichheit mit der Zufallzahl.

Ohne Eingabemöglichkeit kann man ja kein Ratespiel erschaffen.


Viel Erfolg beim lernen!


----------



## skuzzle (28. Okt 2010)

c_sidi90 hat gesagt.:


> Das wäre auch ein Ansatz
> 
> ```
> private void raten(){
> ...



und warum kann ich das mit eclipse zum beispiel nich ausführen ? der zeigt mir da syntax error blaaa da und dort an au wenn ich nen mainbody definier


----------



## skuzzle (28. Okt 2010)

c_sidi90 hat gesagt.:


> achso, das sind halt Sachen damit du überhaupt was eingeben kannst, du musst ja eine Zahl tippen damit geprüft werden kann ob es die richtige Zahl ist. Dafür dient der Input & BufferedReader, sie übergeben Eingaben vom Benutzer (Tastatur) an eine Variable und prüfen Sie dann auf gleichheit mit der Zufallzahl.
> 
> Ohne Eingabemöglichkeit kann man ja kein Ratespiel erschaffen.
> 
> ...



naja aber ich kann ja beispielsweise über unix oder so angeben das des teil mit den und den parametern laufen soll


----------



## c_sidi90 (28. Okt 2010)

Waren paar Rechtschreibfehler drin  In der main Methode musst du nur die Methode raten(); aufrufen. 

Damit du es kompilieren kannst musst du erstmal die benötigten Klassen importieren, mein Vorschlag war nur ein kleiner Gedankenanstupser an dich. Das fertige Programm bzw der komplette Source würde ungefähr so aussehen:


```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Ratespiel2 {
	
	public static void raten() throws IOException{
		 
		InputStreamReader input = new InputStreamReader(System.in);
		BufferedReader eingabe = new BufferedReader(input);
		 
		String tipp = "";
		int anzahlVersuche = 3;  //Wenn der Spieler z.B nur 3 Versuche haben soll
		int zufallszahl = (int)(Math.random()*5); //Je nachdem bis wohin die zu erratene Zahl gehen soll.
		 
		while(anzahlVersuche>0){
		 
		       System.out.println ("Geben Sie Ihren Tipp ab..");
		       tipp = eingabe.readLine();
		 
		       if (Integer.parseInt(tipp) == zufallszahl){
		         System.out.println ("Sie haben Gewonnen, die gesuchte Zahl lautet " + zufallszahl);
		         
		         anzahlVersuche=0;
		       }
		 
		       else { 
		       System.out.println ("Leider Falsch, Sie haben noch " + (anzahlVersuche-1) + " Versuche");
		       }
                         anzahlVersuche = anzahlVersuche -1;
		}  //Ende While
			
	}//Ende raten()
		
		public static void main (String[]args) throws IOException{
			
			raten();
```


----------



## ARadauer (28. Okt 2010)

*Ich eröffne hiermit den ersten internationalen Java-form.org Ratespiel Contest:*
Wer codet den besten Algorithmus um eine Zufallszahl zwischen 1 und 100 ( 1 ist dabei und 100 ist dabei) zu finden.

Was müsst ihr tun?
Dieses Interface implementieren und hier posten:


```
public interface IZahlenSpielAlgo {
   
   /**
    * setzt den Algorithmus auf den Ausgangszustand zurück
    * @param max von 1 bis max
    */
   public void reset(int max);
   
   /**
    * wird aufgerufen wenn die letze Zahl zu hoch war
    * 
    */
   public void tooHigh();
   
   /**
    * wird aufgerufen wenn die letze Zahl zu niedrig war
    * 
    */
   public void tooLow();
   
   /**
    * liefert den nächsten Antwortversuch zurück
    * @return
    */
   public int getNextGuess();
   
   /**
    * liefert den Namen des Spielers zurück
    * @return
    */
   public String getName();   

}
```
um 20:00 ist Abgabesschluss!


wie wird getestet? Damit:


```
import java.util.ArrayList;
import java.util.Random;

public class Zahlenspiel {

   public static int MAX = 100; // von 1 bis 100
   
   public static int TURNS = 10000; // wir lassen sie 10000 mal laufen

   Random rnd = new Random();

   public static void main(String[] args) {

      Zahlenspiel spiel = new Zahlenspiel();

      ArrayList<IZahlenSpielAlgo> algoList = new ArrayList<IZahlenSpielAlgo>();
      algoList.add(new RandomAlgo());
      algoList.add(new HalfAlgo());
      
      //algoList.add( hier kommt dein Algorithmus rein!);

      for (IZahlenSpielAlgo algo : algoList) {
         System.out.println(spiel.testAlgo(algo, TURNS) + ": " + algo.getName());
      }

   }

   public double testAlgo(IZahlenSpielAlgo algo, int times) {

      int overall = 0;
      for (int i = 0; i < times; i++) {

         int numberToFind = rnd.nextInt(MAX) + 1;
         
         overall += solveGame(algo, numberToFind);

      }
      return overall / (double) times;

   }

   public int solveGame(IZahlenSpielAlgo algo, int numberToFind) {
      int tries = 0;

      algo.reset(MAX);
      int guess = algo.getNextGuess();
      tries++;
      while (guess != numberToFind) {
         if(guess >5000){ //wir haben ja nicht ewig Zeit!
            return guess;
         }
         
         if (guess < numberToFind) {
            algo.tooLow();
         } else {
            algo.tooHigh();
         }
         guess = algo.getNextGuess();
         tries++;
      }
      return tries;
   }

}
```
gebt mir bescheid fals ich einen bug drinne habe   

Ich weiß das ganze ist irgendwie sinnfrei, da mein oben beschriebener Algo eigentlich optimal sein sollte, aber vielleicht irre ich mich ja :lol:


----------



## c_sidi90 (28. Okt 2010)

Find die variante von dir wesentlich eleganter aber für ein Anfänger um das Grundprinzip zu verstehen vollkommen ungeeignet.


----------



## mariusbopp (28. Okt 2010)

oh  man oh man:lol:
ich glaube ich habe heute schon 1000000 varianten dazu gesehen :bloed:

ich poste mal NIX weil ihrs eh besser könnteueh:

:toll:


----------



## c_sidi90 (28. Okt 2010)

Denk mein Beispiel ist gut zum Lernen,, probiers mal Damit @ skuzzle, wenn du dazu noch Fragen hast einfach hier posten


----------



## ARadauer (28. Okt 2010)

1000000 .. ja dann her mit einer ;-)
um euch einen Anreitz zu bieten, so könnte das aussehn


```
import java.util.Random;

public class RandomAlgo implements IZahlenSpielAlgo {

   private int guess  = -1;   
   private Random rnd = new Random();   
   private int max;  
   
   @Override
   public String getName() {
      return "ARadauer";
   }

   @Override
   public int getNextGuess() {
      return guess;
   }

   @Override
   public void reset(int max){
     this.max = max;   
     randomGuess();      
   }

   @Override
   public void tooHigh() {
      randomGuess();      
   }

   @Override
   public void tooLow() {
      randomGuess();
   }

   /**
    * mir ist alles wursch ich rate einfach mal ;-)
    */
   private void randomGuess(){      
      guess = rnd .nextInt(max)+1;
   }
}
```

schafft im schnitt um die 100... uhhh sehr mies... aber haltet euch ran, das ist nicht meine einzige Lösung, ich hab auch eine mit 5.8 Versuchen


----------



## krazun (28. Okt 2010)

> ergo vergleich ich die dann mit ner* if schleife* und sag ob diese dann zu hoch oder zu niedrig is blablabla




if-schleife.de


Sorry den konnt ich mir nicht verkneifen 

mfg,
krazun


----------



## c_sidi90 (28. Okt 2010)

du verwirrst ihn damit nur^^


----------



## skuzzle (28. Okt 2010)

ok ja bei dem wettstreit halt ich mich auch mal ganz dezent raus hehe  ok dann wie gesagt vielen vielen dank  ich werde mein bestes geben und mein fertiges ergebnis entweder heute oder morgen mal posten 

ok und wieder was dazu gelernt dann eben nur for while do schleifen ;D


----------



## LILA (28. Okt 2010)

Hallo, 
habe die Diskussion gelesen.
Und da ich auch gerade Java lerne habe ich mir gedacht ich probiers mal. 

Hier die mögliche Lösung eines Anfänges, die nicht am Kontest teilnehmen kann 


```
package gewinnspiel;

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

public class Main {

    public static void main(String[] args) {


        Random r = new Random();
        int zufallsZahl = r.nextInt(50 - 1) + 1;
        System.out.println("Die Zufahlszahl lautet:" + zufallsZahl);

        Scanner scanner = new Scanner(System.in);
        System.out.print ("Was für eine Zahl denke ich mir?");
        int meineZahl = scanner.nextInt();

        while(zufallsZahl != meineZahl){
            System.out.println(meineZahl + " war nicht richtig!");
            System.out.println("Wie könnte die Zahl sonst heissen?");
            int meineZweiteZahl = meineZahl = scanner.nextInt();
        }

        System.out.println("Jetzt haben Sie die richtige Zahl gefunden");

    }

}
```

Bin um Verbesserungsvorschläge etc. dankbar

Grüße


----------



## skuzzle (28. Okt 2010)

noch ma nebenbei was is eigentlich der unterschied zwischen math.random und random nextint ? also beides führt ja zum gleichen ergebnis oder lieg ich da falsch ?


----------



## ARadauer (28. Okt 2010)

mhn Math.random liefert ja nur einen double wert von 0 - 1 zurück.
Von dem her finde ich die Random Klasse angenehmer, da ich sagen nextInt(6), nextBoolean usw...
Wie schauts intern aus.... wie ich gerade sehe benutzt Math.random  die Random Klasse und ruft nur ein nextDouble auf...



```
private static Random randomNumberGenerator;

    private static synchronized void initRNG() {
        if (randomNumberGenerator == null) 
            randomNumberGenerator = new Random();
    }

     public static double random() {
        if (randomNumberGenerator == null) initRNG();
        return randomNumberGenerator.nextDouble();
    }
```

interessant, wusste ich nicht. Wie gesagt, ich finde einfach die Random Klasse angenehmer zu benutzen, ist aber wahrscheinlich Geschmacksache..


----------



## c_sidi90 (28. Okt 2010)

Ein wirklichen Vorteil sehe ich auch in keiner der beiden, denk mal das gewöhnt man sich in der Anfangsphase einfach an:lol:


----------



## skuzzle (28. Okt 2010)

also komm ich aufs gleiche ergebnis wenn ich random.nextint (5) oder math.random()*(5+1)  eingeb ?


----------



## ARadauer (28. Okt 2010)

@skuzzle: kennst du eine BlackSalad?

http://www.java-forum.org/java-basics-anfaenger-themen/107884-zahlenratenspiel-hilfe.html

die is ja auch ganz verzweifelt...


----------



## skuzzle (29. Okt 2010)

heheh sehr schön kenn ich nich  aber is ja wirklich ähnlich wobei ich doch ein wenig ich sag mal eigenständiger arbeiten will


----------



## ARadauer (29. Okt 2010)

mnhn keiner eine Lösung für meinen Contest?

Schade dann hier meine: 

```
public class HalfAlgo implements IZahlenSpielAlgo{

   int from = 1;
   int to = 0;
   
   @Override
   public String getName() {
        return "ARadauer 2";
   }

   @Override
   public int getNextGuess() {
      return from + (to-from) /2;
   }

   @Override
   public void reset(int max) {
      to = max;
      from = 1;      
   }

   @Override
   public void tooHigh() {
      to = getNextGuess()-1;      
   }

   @Override
   public void tooLow() {
     from = getNextGuess()+1;
      
   } 

}
```


juhuu ich bin der gewinner ;-)


----------



## mariusbopp (29. Okt 2010)

ei subba:toll:


----------

