# Java BlueJ Schatzsuche



## payamkz (11. Feb 2012)

hey leute,
in der schule arbeiten wir momentan mit BlueJ mit dem buch "Informatik mit Java
Eine Einführung mit BlueJ und der Bibliothek Stifte und Mäuse" (http://www.mg-werl.de/sum/OOP-Buch1.pdf). Ende von kapitel 5 (5.10) sollen wir eine Schatzsuche programmieren. ich bin soweit, das wenn man auf den bildschirm klickt, man den abstand von der stelle wo man geklickt hat und der stelle wo der "schatz" ist erhält. 


```
import sum.werkzeuge.*;
import sum.kern.*;
/**
 * @Payam
 * @20.01.12 
 */
public class Schatzsuche
{
    // Objekte
    Bildschirm derBildschirm;
    Buntstift Schatzstift;
    Rechner meinRechner;
    Maus dieMaus;
    Stift Schreibstift;

    // Konstruktor
    public Schatzsuche()
    {  
      derBildschirm = new Bildschirm();
      Schatzstift = new Buntstift();
      meinRechner = new Rechner();
      dieMaus = new Maus();
      Schreibstift = new Stift();
    }

    // Dienste
    public void fuehreAus()
    {
        // Aktionsteil
      {
        Schatzstift.bewegeBis(meinRechner.ganzeZufallszahl(0, derBildschirm.breite()),
        meinRechner.ganzeZufallszahl(0, derBildschirm.hoehe()));
        Schatzstift.runter();
        Schatzstift.zeichneKreis(5);
      } 
	    
      while (!dieMaus.doppelKlick())
      {
        if (dieMaus.istGedrueckt())
        {
          Schreibstift.bewegeBis(550,350);
          Schreibstift.runter();
          Schreibstift.schreibeZahl(meinRechner.wurzel(
          meinRechner.quadrat(dieMaus.hPosition()-
          Schatzstift.hPosition())
          + meinRechner.quadrat(dieMaus.vPosition() -
          Schatzstift.vPosition())));
          Schreibstift.hoch();
        }
        else
        {
          derBildschirm.loescheAlles();
       }
      }
      
     
      
      
      
      
      
        // Aufraeumen
        derBildschirm.gibFrei();
        Schatzstift.gibFrei();
        meinRechner.gibFrei();
        dieMaus.gibFrei();
        Schreibstift.gibFrei();
    }
}
```

wenn ich in den bereich klicke wo der "schatz" liegt, soll GEFUNDEN erscheinen. außerdem soll man durch eine stoppuhr nur 60sek zeit haben, den schatz zu finden. wisst ihr wie das geht?


----------



## Marco13 (11. Feb 2012)

Ja, sehr spezielle Umgebung, mit BlueJ und dieser Bibliothek. Aber... "GEFUNDEN" soll wohl erscheinen, wenn der Abstand "sehr klein" ist, oder? Sollte es da nicht eine if-Abfrage tun?

```
double abstand = ...
if (abstand < 1) {
    irgendwas.schreibe("Gefunden");
}
```
Das mit der Zeitbeschränkung... da kannst du dir mal die Klasse Timer (Java Platform SE 7 ) ansehen, aber ... das ist unverbindlich - vielleicht gibt es in SUM auch "spezielle" andere Zeitmesser ... schau dir auch da mal die Doku durch!


----------



## payamkz (11. Feb 2012)

ja genau, wenn der abstand 5 bträgt
danke, aber muss ich das nicht ein bisschen umschreiben, eben in diesem bluej stil meine ich...


----------

