Quellcodedokumentation

1. Klassenhierarchie
Klassenname Methoden/ Funktion im Programm
Start erstellt ein neues Fenster, in dem das Startbild angezeigt wird
Auswahlbilds

1. erstellt ein Fenster, in dem ausgewählt werden kann, gegen wen man spielt und in welchem Modus gespielt wird. Letzteres erfolgt lediglich durch setzen einer entsprechenden Variabel in der Klasse "nuf", um eine starke Redundanz im Quellcode zu vermeiden. Danach ruft sich diese Klasse mit erneut auf. Die Anordnung der verschiedenen Elemente, wie Buttons oder Checkboxelementen erfolgt in der gesamten Klasse mithilfe des Gridbag-Layout's, dass eine relativ freie Gestaltung der Anordnung dieser Objekte zuläßt.

2.Aufgrund des geänderten Parameters in der Klasse nuf wird jetzt das jeweilige Fenster für die Auswahl der Namen und Farben angezeigt und diese, nachdem sie ausgewählt wurden in den entprechenden Klassenvariablen der Klasse nuf gespeichert.

Spielbrett

Stellt die graphische Oberfläche des Spieles dar.

1. "ruecksetzen()" : setzt das virtuelle Spielbrett zurück. Dies ist ein Feld der Dimension 8x8x3, wobei hier in 3 Ebenen der jeweilige Spielstand gespeichert wird. In Ebene 0 steht dabei der aktuelle Spielstand, in Ebene 1 die Spielfeldwertung und in Ebene 2 die vom Computer angenommenen eigenen Züge (nur, wenn er selbst mitspielt).

2. "paint(Graphics g)" : malt das Spielbrett nach jeder Größenänderung neu, wobei gleichzeitig der Hintergrund und die Spielsteine mit skaliert werden.

3. "chips(int, int, int, int)" : Zeichnet die Spielsteine entsprechend der aktuellen Skalierung

4. "Ausgabe(String, String)" : realisiert die Ausgabe in der oberen Zeile des Spielfeldes und wird zur Ausgabe von eventuellen Fehlermeldungen genutzt.

5. "Ausgaben(String, int, int)" : dient der Ausgabe von Text in einer bestimmten, zu skalierenden Zeile mit einer von drei vorgegebenen Farben

6. "clearSFrame()" : dient dem Entfernen von allen Ausgaben auf dem Spielbrett. Resultat: leerer schwarzer Hintergrund.

nuf Enhält die Variablen mit den Spielernamen, -farben, -punkten und verschiedene Testvariablen, die genutzt werden, um z.B. in der Klasse Auswahlbilds zu entscheiden, welches Fenster angezeigt werden soll. Außerdem ist eine Methode enthalten, die der Farbauswahl für die jeweiligen Spieler dient.
TransparentFilter Realisiert die Möglichkeit, bei Bildern allen weißen Pixeln Transparenz zuzuweisen. Dies wurde z.B. in der Klasse EinfachVerkListe verwendet, in der der Highscore auf einem graphischen Hintergrund ausgegeben wird.
EinvachVerkListe

1."addElement(int value, String player)" : fügt in eine einfach verkette Liste Elemente geordnet ein (von klein nach groß) Dies wird genutzt, um die Highscoreliste zu erstellen.

2. "outListe()" : wird genutzt, um den Highscore auszugeben. Dabei wird ein neues, virtuelles Bild der Schrift auf weißem Hintergrund erstellt, dieser aus dem Bild entfernt und ein anderes Bild als Hintergrund eingelesen. Beide Bilder werden in der paint-Methode dieser Klasse zusammen ausgeben.

3. "saveListe()" : dient dem Speichern der einfach-verketteten Liste in einer Datei namens "Punkte.dat"

Listenelement Enthält Konstruktoren zum Erstellen einer einfach verketteten Liste, bei der jedes Element aus einem Zeiger auf das nächste Element und zwei Objekten, einem int-Wert (dem Punktestand des jeweiligen Spielers) und einem String (dem Namen des Spielers) besteht. Sie wird lediglich zum Erstellen des Highscores benutzt.
Anfangswerte "Ablaufst(Spielbrett c)" : setzt die Werte im Feld auf der Ebene des realen Spielstandes auf ihren Anfangswert zurück, wobei "2" für freies Spielfeld, "0" und "1" für jeweils einen Spieler gilt.
Highscore liest auf Wunsch die Datei, die den Highscore enthält aus, übergibt deren Inhalt an eine einfach verkette Liste (in geordneter Form eingefügt, siehe oben), gibt auch die neuen Punktzahlen mit ein, gibt die Liste aus und speichert sie ab. Es besteht die Möglichkeit, ein Abspeichern zu verhindern, indem man in dem von Dialog abgeleiteten Fenster "nein" anklickt.
Mensch dient dem Spiel zweier Menschen gegeneinander
Computersteuerung dient dem Spiel eines Menschen gegen den Computer
EigenerZug dient dem Auffinden eines möglichen Zuges für den Computer und dessen Bewertung, außerdem wird hier das Auszählen der besetzten Felder und die Ausgabe des Gewinners realisiert
Kontrolle dient dem Setzen der Spielsteine, nachdem kontrolliert wurde, ob der Zug den Regeln entspricht
Mensch/ Computersteuerung dienen der Steuerung des Ablaufs des Spiels. Die im Quelltext eingefügten Kommentare sollten eine gewisse Nachvollziehbarkeit ermöglichen.
Kontrolle/ EigenerZug Diese Klassen stellen Methoden zur Verfügung, die für einen korrekten Spielablauf notwendig sind. So zum Beispiel das Suchen nach einem Zug für einen bestimmten Mitspieler, die Kontrolle, ob der Zug den Regeln entsprach oder die Ausgabe des Spielstandes nach Beendigung einer Spielrunde. Auch hier sollte es anhand der zum Teil recht umfangreichen Kommentare möglich sein, die Funktion wichtiger Variablen und Abläufe nachzuvollziehen, wenn dies gewünscht wird.