Vorkurs Informatik
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
204 10 Grafikprogrammierung mit Swing<br />
der Umsetzung der Aufgabe folgendermaßen vor: Durch den ersten Mausklick wird der Anfangspunkt<br />
der ersten Linie festgelegt, mit dem zweiten Mausklick der Endpunkt. Dieser Punkt ist gleichzeitig<br />
der Anfangspunkt der nächsten Linie. Beendet wird diese Vorgehensweise, wenn sich die Koordinaten<br />
zweier nachfolgender Mausklicks nicht unterscheiden.<br />
Aufgabe 10.8:<br />
Zum Abschluss der Kapitel über Programmierung soll ein größeres Softwareprojekt realisiert werden -<br />
ein Computerspiel mit Namen Repeater. Das Ziel dieses Spiels ist es, eine Kombination von Farbfolgen<br />
zu wiederholen, die im Laufe des Spiels immer länger wird. Sehen wir uns zunächst eine mögliche Bildschirmdarstellung<br />
des Spiels in Abbildung 10.8 an. Gemäß der vier Himmelsrichtungen sind auch die vier<br />
Farbflächen (rot, grün, blau, gelb) angeordnet, deren Farbkombinationen es zu wiederholen gilt. Ergänzt ist<br />
noch ein Button zum Starten des Spiels gegeben.<br />
Ausgehend von diesem Spielfeld beschreiben wir kurz ein mögliches Spielszenarium. Sobald das Spiel<br />
über den Button gestartet wird, leuchtet zufällig eine durch den Computer bestimmte Farbfläche auf, die<br />
es sich zu merken gilt. Gehen wir einmal davon aus, dass die rote Farbfläche ausgewählt wurde, ist auch<br />
diese rote Fläche mit der Maus anzuklicken. Anschließend wird die aktuell aus einer Farbe bestehende<br />
Farbkombination erweitert, beispielsweise, dass eine grüne Fläche hinzukommt. Dieses wird durch den<br />
Computer angezeigt, indem zuerst die rote, danach die grüne Fläche aufleuchtet. Nach diesem Prinzip setzt<br />
sich das Spiel fort. Nach jeder erfolgreich wiederholten Farbkombination, wird diese um eine weitere Farbe<br />
ergänzt. Das Spiel endet, falls die Farbkombination nicht korrekt wiederholt werden konnte.<br />
Zu Beginn einer Softwareentwicklung steht die Frage, was das System leisten soll und wie es auf Basis<br />
dieser Überlegungen in einer Programmiersprache umzusetzen ist. Da dieses Buch nicht das Softwaredesign<br />
zum Thema hat, nehmen wir die Anforderungen als durch die Spielbeschreibung bereits (informell)<br />
vorgegeben. Eine mögliche softwaretechnische Umsetzung könnte gemäß dem UML-Diagramm in Abbildung<br />
10.9 realisiert werden. War es in den bisherigen Programmieraufgaben immer klar definiert, was<br />
genau zu programmieren ist, sei in dieser Aufgabe programmiertechnische Kreativität möglich und erwünscht.<br />
So sollen der Screenshot in Abbildung 10.8 und das UML-Diagramm in Abbildung 10.9 nur<br />
eine Option zur Programmierung aufzeigen. Dass innerhalb der Abbildung „besondere“ Formen von Vererbungsbeziehungen<br />
zwischen den Klassen dargestellt sind, können Sie ignorieren. Die damit ausgedrückten<br />
Konzepte („gerichtete Assoziation“ zwischen RepeaterPanel und RepeaterFrame bzw. eine sogenannte<br />
„Containment-Hierarchy“ zwischen RepeaterFrame und RepeaterActionListener) sind nur im<br />
Hinblick auf eine korrekte Darstellung genutzt. Sie gehen aber über den einführenden Charakter zur UML-<br />
Notation hinaus.<br />
Trotz dieser Freiheit sollen Ihnen die folgenden Teilaufgaben, mit den entsprechenden Hinweisen, helfen,<br />
auch dieses größere Softwareprojekt erfolgreich zu realisieren. Als zusätzliches Hilfsmittel sollte die Java-<br />
Dokumentation genutzt werden – auf der Internet-Seite zum Buch finden Sie die zugehörigen Links zum<br />
Download. Schließlich befindet sich, abweichend zu den bisherigen Aufgaben, auch eine Musterlösung auf<br />
der Internet-Seite zum Buch. Sie sollten aber versuchen, die Musterlösung eventuell nur als Anhaltspunkt<br />
zu nutzen und das Spiel nach Ihren eigenen Vorstellungen programmieren.<br />
a) Erstellen Sie zunächst die grafische Oberfläche mit den vier Farbflächen und dem Start-Button. Die<br />
Anordnung der Farbflächen kann über den Layoutmanager BorderLayout realisiert werden. Dieser<br />
ermöglicht es, die Elemente in allen vier „Himmelsrichtungen“ und der Mittelposition anzuordnen.<br />
Sie können beispielsweise die Datenstruktur Rectangle aus dem Abschnitt 10.3.1 wiederverwenden.