0.1 Vorwärtszüge-funktion -> Vec an resulting PlayFields
0.2 Rückwärtszüge "
-
Auflistung aller gewonnen (und verlorenen) Konfigurationen
- Generierungs-Algorithmus für verlorene und gewonnen Konfigurationen -> Eine Farbe hat 2 Stein, die andere 3..n mit n = 9 in Produktion, n<9 für Tests
- Erstellung von Hash-Sets für win & lost Konfiguraitonen -> Andere Sets als bei 2.?
- Was wir für Win/ Loste Konfigs brauchen:
- Gegner-Farbe hat 2 (beliebig verteilte) Steine, Fargeb hat mindestens eine Mühle auf dem Feld
- Idee:
- Erstelle Tabelle mit 2^(12-2) - 1 (erstmal in unboxed array lut)Kombinationen von weißen Steinen zwischen den schwarzen Steinen: BB, BBW, BWB, WBB, BBWW, ...
- For mögliche_mühlen_position in (1..3) // Mühle äußerer Ring, mittlerer Ring und über Ringe hinweg -> Übrige Mühlen ergeben sich aus den Shifts der Kombinationen
- Definiere 11 Schleifen: Jede Schleife shiftet einen Index aus den Kombinationen der LUT nach links
- Entstandene Konfigurationen werden in Normalform gebracht und in ein WON-Set eingefügt, wenn sie noch nicht vorhanden sind aufgrund der Spiegelungen
- Invertiere die Elemente aus dem WON-Set -> LOST-Set
-
Bottom-Up Tree-Walker Algorithmus zum Füllung der HashSets mit allen möglichen Konfigurationen
- HashSets won/lose füllen
- Methode: mark_lost
- Wird initial auf allen Elementen der generierten Konfigurationen in LOST aufgerufen
- Für alle Elemente auf dem Stack
- Finde alle Rückwärtszüge von
- Methode: mark_won
- Methode: mark_lost
- Rückwärtszug-Enumeration Algorithmus
- HashSets won/lose füllen
-
if-Verzweigung für verschiedene Ausgabefälle
-
Schleife zur iteration durch input_felder.txt