Ich hab mich jetzt nochmal einige Stunden hingesetzt und mich unter anderem mit dem Einlesen und Vergleichen von Strings beschäftigt.
Es klappt jetzt bestens!
Gelöst habe ich es so:
In einer unsichtbaren Textbox des Programmes stehen analog zu TSCP die Eröffnugnszüge drinnen. Man könnte alles auch in eine txt Datei schreiben, aber ich wollte alles in der exe haben. Die tatsächlich durchgeführten Züge werden in eine andere Textbox geschrieben. Nach jedem Zug prüft das Programm, ob es in der Eröffnungsbibliothek eine Zeile gibt, die identisch beginnt wie die bisher gespielten Züge. Vorher wird der String, der in der Liste aller bisher gespielten Züge steht, entsprechend aufbereitet: Zugnummern entfernen, Figurensymbole entfernen, ggf. Schlagsymbole und Bindestriche entfernen so dass nur mehr die Notation überbleibt, wie sie in TSCPs Eröffnungsbuch steht. Dazu habe ich mich unter anderem mit Regular Expressions (RegEx) auseinandergesetzt, die ich aber am Ende doch nicht benötigte. Wenn eine passende Zeile gefunden wird, wird der entsprechende Zug ausgespielt ohne zu rechnen (je nachdem, wie viele Halbzüge bereits gepsielt sind, holt sich das Programm die entsprechende Stelle im String). Wenn es mehrere Zeilen gibt, die identisch sind (weil die Verzweigung erst später erfolgt), so wird per Zufallsgenerator eine der passenden Zeilen ausgewählt.
Wenn das einmal klappt, und das tut es seit heute Mittag, kann man die Eröffnungsbibliothek mit sehr geringem Aufwand beliebig erweitern. Jetzt suche ich noch nach einer Datei die mehr Züge enthält als die von TSCP.
Nochmals Danke für diesen wirklich guten Hinweis, Thomas.
Einen schönen Sonntag noch,
Jens