Damit die Figuren bestimmen können, wo man diese setzen kann und welche Felder erreichbar sind, muss Ihnen das Spielfeld und dessen Geometrie bekannt sein..
Nö.
Type
Delphi-Quellcode:
TFeld = class ...
property Nachbarn : TFeldListe read fFeldListe;
end;
Fertig. Im Schachbrett hat Feld 'A1' drei Nachbarn, H5 dagegen 8, wenn man die Diagonal erreichbaren hinzuzählt. Ansonsten 2 bzw. 4. Oder eben 6 oder 26 (3-D Schach). Alles ein und dieselbe Struktur.
Für Nachbarfelder ist ein eigener Enumerator schon sinnvoll.
Figur können aber nur bestimmte Bewegungen oder Richtungen zulassen und mehrere Felder zurücklegen oder überspringen (Läufer oder Springer).
Da braucht dann jede Figurtyp noch mal einen eigenen Enumerator (der auf das Spielfeld und dessen Enumerator(en) zugreifen kann) und der ist abhängig von der Feldgeometrie.
Aber das geht schon viel zu sehr ins Detail.