Anklickbaren Text erzeugen

Goldinho

Aktives Mitglied
Hallo zusammen.
Ich würde für mein Schachprojekt gerne die bereits gemachten Züge als Notation festhalten und dabei ermöglichen, dass man per Klick auf den Text zu der jeweiligen Stellung zurückkommt, quasi wie ein Hyperlink, der aber dann eine Methode aufruft.

Mittels (kurzer) Recherche habe ich nicht wirklich viel gefunden, außer dass man es evtl als Button realisiert, dessen Aussehen man dann anpasst.

Gibt es da nicht einfachere Möglichkeiten?
Wie würdet ihr das umsetzen?

Danke für Tipps.

Gruß Christian
 
Das Schachbrett befindet sich in einem Zustand z. Durch einen Zug wird das Schachbrett in einen neuen Zustand z' überführt. Ausgehend von einem Urzustand z0 ist der aktuelle Zustand zn Ergebnis einer Folge von Zügen:

Code:
   Zug     Zug     Zug      Zug
z0 ---> z1 ---> z2 ---> ... ---> zn

Es genügt also, sich den Urzustand z0 und die Zugfolge zu merken, dann lässt sich jeder Zustand wiederherstellen. Die Zugfolge lässt sich in einer geordneten Liste speichern.

Im UI würde ich die Liste einfach in einer Listbox (JList o. ä.) anzeigen. Wenn ein Element der Liste (=Zug) ausgewählt wird, wird das Schachbrett halt vom Urzustand aus bis einschließlich des gewählten Zugs wiederhergestellt.
 
Ja, so kann man es machen. Ich habe aktuell halt die ganze Stellung in einem zweidimensionalen Array, das wiederum nach jedem Zug in einer ArrayList gespeichert wird. Ist vielleicht etwas datenintensiver, aber dafür zuverlässiger als jeden Zug nochmal durchführen zu lassen (v.a. wegen Probleme bei Sonderzügen wie Enpassant). Für ne komplette Zugneudurchführung ist mein Code auch zu chaotisch 😉
Meine eigentliche Frage war eher die andere. JList klingt gut, schaue ich mir später mal an (aktuell kämpfe ich mit der Mattprüfung). Danke!
 

Zurück
Oben