Zahlenraten: Ein Spiel in Java. Nach dem Start vom Java-Editor (und dem Erstellen eines JFrame-Programms) sieht man Folgendes: Dieser Code startet das Programm, indem es ein Objekt der Klasse Zahlenraten initialisiert ( erstellt ). S1 - Hier kommen weitere Befehlsbibliotheken. S2 - Hier kommen die Variablen. Konstruktor der Fensterklasse: Erledigt alle notwendige Arbeiten, bevor das Fenster angezeigt wird. S3 - Hier kommt der Quellcode, der ausgeführt werden soll, bevor das Fenster angezeigt wird. S4 - Hier kommen evtl. Hilfsmethoden. Die Stellen S1-S4 des Programms, die in den Legenden mit gelbem Hintergrund erklärt sind, sind für uns sehr wichtig, denn alles, was wir programmieren, fügen wir an einer dieser Stellen ein. Um später Verwirrung zu vermeiden, fügen wir am besten noch bevor wir eine Benutzeroberfläche programmieren (zusammenstellen) an jeder dieser Stellen Kommentare ein, die uns das spätere Finden eben dieser Stellen erleichtert. Das ist wichtig, denn Java-Editor fügt an diese Stellen auch Quellcode ein, und wenn wir die Stellen nicht ausreichend markieren, verlieren wir sehr schnell den Überblick. Der um unsere Kommentare ergänzte Quellcode sollte so aussehen: Seite 1
Pakete, Befehlssammlungen, Alles, was wir nun an Programmzeilen evtl. (per Hand) einfügen müssen, kommt zwischen die beiden Kommentarzeilen. Mein Quellcode Als Letztes sehen wir uns an, was mit dem Quellcode passiert, wenn wir in die Benutzeroberfläche eine neue Komponente wie Label, TextFeld, Button oder Panel einfügen. Wichtig ist für uns vor allem die Frage, ob Java-Editor beim Einfügen etwas (wie z.b. Buttons) zwischen unsere Kommentarzeilen reingeschrieben hat. Seite 2
Beim hinzufügen eines Buttons fügt Java-Editor folgenden Quellcode hinzu. Dieser Code ändert die Größe des Buttons, setzt seine Beschriftung und sagt, welche Methode (siehe unten) aufgerufen werden soll, falls er gedrückt wird. Diese Methode wird aufgerufen, wenn der Button gedrückt wird. Wie man sieht, hat Java-Editor unsere Kommentare nicht verändert und auch nichts dazwischen geschrieben! Seite 3
Zahlenraten Wir wollen nun ein kleines Spiel Zahlenraten programmieren. Die Regeln sind einfach. 1) Der Computer denkt sich eine Zahl aus. 2) Ein Spieler hat zehn Versuche, um diese Zahl zu erraten. Dafür gibt er eine Zahl in das Eingabefeld ein und bestätigt die Eingabe durch anklicken mit einem Button. Aufgaben: 1) Erstellen Sie eine JFrame-Programm. 2) Fügen Sie an die oben erwähnten Stellen die Kommentare: //-----< START: Von mir eingebundene Pakete(Befehlssammlungen) >-------------------- //-----< END: Von mir eingebundene Pakete(Befehlssammlungen) >---------------------- //-----< START: Meine Variablen >-------------------- //-----< END: Meine Variablen >---------------------- //-----< START: Mein Quellcode für die Initialisierungsphase >-------------------- //-----< END: Mein Quellcode für die Initialisierungsphase >---------------------- //-----< START: Meine Methoden >-------------------- //-----< END: Meine Methoden >---------------------- 3) Erstelle folgendes oder ähnliches Formular für das Spiel: Seien Sie kreativ! lresult tfinputnumber 4) Erstellen Sie die Spiellogik in sechs Schritten. a. Die eingegebene Zeichenkette (engl. String) sollten beim Drücken des Buttons Zahl überprüfen vom Eingabefeld (tfinputnumber) gelesen und in das Label lresult geschrieben werden. Wie liest/schreibt man Objekteigenschaften? Seite 4
b. Definieren Sie eine Variable (eingabe vom Typ String), in der Sie die in a) gelesene Zeichenkette zwischenspeichern. Wo definieren (def.) man Variablen (S1-S4)? Wie def. man Variablen? c. Definieren Sie zwei weitere Variablen vom Typ int (integer - ganze Zahlen). Eine (zuerratendezahl) für die Zahl, die sich der Computer ausdenkt, die zweite (eingebenezahl) für die vom Spieler eingegebene Zahl. Wo def. man Variablen (S1-S4)? Wie def. man Variablen? d. Wandeln Sie die String-Variable eingabe in eine int-variable eingebenezahl. Wie und warum verändert man Datentypen? e. Erstellen Sie eine Zufallszahl (zwischen 1 und 1024) und speichern Sie diese in der Variablen zuerratendezahl. Wie erstellt man eine Zufallszahl? Braucht man für die Zufallszahlen eine zusätzliche Befehls-Bibliothek? f. Vergleichen Sie eingebenezahl mit der vom Computer ausgedachten Zahl zuerratendezahl und geben Sie das Ergebnis des Vergleiches was kann das wohl sein? aus. Wie kann man einen Vergleich von Zahlen bewerkstelligen? 5) Wenn Sie fertig sind a. Fügen Sie einen Zähler ein, der die Anzahl der Versuche (von 10) herunterzählt. Erreicht der Zähler die 0, so soll der Button Zahl überprüfen und das Eingabefeld (tfinputnumber) deaktiviert werden (siehe Eigenschaft: enabled) und eine Meldung Spiel verloren erscheinen. b. Ändern Sie die Hintergrundfarbe der Meldung je nachdem, ob die geratene Zahl richtig oder falsch war. c. PROFIS: Fügen Sie eine Turtle-Komponente, in der Sie den Zahlenbereich mit den geratenen Zahlen anzeigen. Beispiel: Es wurden die Zahlen 50 und 700 geraten. (Die gesuchte Zahl liegt dazwischen.) 1 50 700 1024 Seite 5