Die Spielsituation wird intern unabhängig von der Grafik dargestellt. Die Möglichen Züge immer über die Grafik zu berechnen würde natürlich viel zu lange dauern.

Einfach nur die Verbindungen der Punkte zu speichern würde nicht ausreichen, weil die Information fehlt, wie die Flächen zerteilt sind und welche Punkte abgeschnitten sind.

Die Verbindungen werden als gerichtete Kanten gespeichert, jede Verbindung entspricht einem Paar gerichteter Kanten.
Es ergeben sich zyklische Pfade, wenn man an einer Kante startet, und bei jedem Punkt immer rechts abbiegt.
zu jedem Pfad gehört eine Fläche, sie liegt rechts vom Pfad. Mehrer Pfade können an der selben Fläche liegen.
Es können nur Punkte neu verbunden werden, die an einer gemeinsamen Fläche liegen.

Ein mögliche Darstellung wäre:
struct situ
{ int np; // anzahl der Punkte
int na; // anzahl der Flächen
int cnext[MAXP*3]; // nummer der Nachfolgerkante (-1 = unbenutzt; wenn alle 3 vorhanden, dann gegen uhrzeigersinn)
int carea[MAXP*3]; // nummer der Fläche zu der die Kante gehört
};
Kantennummern sind dann 3*Punktnummer + Kantenindex(0..2) . Die Verwendung eindimensionaler Arrays anstelle von 2 dimensionalen macht es etwas einfacher, die Nummern der Folgekanten als einfache integer Werte zu speichern. Da die Stellungen nur eine begrenzte Maximalgrösse haben (MAXP == 31, bei  max. 8 Startpunkten), bieten sich statisch dimensionierte Arrays an.

Beim Ausführen von Zügen müssen dann Pfade aufgebrochen / vereingt werden und evtl unabhängige Teilnetze der neuen Fläche zugeordnet werden.

Die Darstellung die ich im Programm benutzte ist etwas grösser. Sie enthält noch ein paar redundante informationen, die aber viele Berechnungen beschleunigen. Darin sind auch die Pfade durchnummeriert und Beziehungen zwische Pfaden und Flächen gespeichert.

Zusätzlich gibt es erweiterte Informationen, die für die Grafikdarstellung nützlich sind. Die oben angegebene struct , kann auf verschiedene Weise grafisch dargestellt werden, je nach dem, welche der Flächen man als Aussenfläche wählt.
Im Spiel mit Grafik bleibt aber die Wahl der Aussenfläche immer konstant. Zu jeder Fläche (ausser der Aussenfläche) ist dann ein bestimmter Pfad der Umschliessende Pfad der Fläche.