Hallo,
ich habe zwei Klassen, Klasse A und Klasse B, und ein Problem
Die Klasse A kann mit einigen wenigen Ausnahmen alle Aufgaben eines Strategierätsels durch logische Entscheidungen lösen. Um auch extrem schwierige Aufgaben lösen zu können, soll die Klasse A mit Unterstützung der Klasse B auch die "was ist, wenn" Methode einsetzen.
Die Klasse B kann für eine teilgelöste Aufgabe systematisch einen Lösungsschritt zum Ausprobieren anbieten, mit dem die Klasse A weiter an der Lösung arbeiten kann ("was ist, wenn"). Gelingt die Lösung zunächst nicht, kann die Klasse B weitere solche Lösungsschritte anbieten. Mit anderen Worten, die Klasse B soll der Klasse A die Lösung der Aufgabe über die BackTracking-Methode ermöglichen.
Damit die Klasse B nur Zugvarianten anbietet, die bisher noch nicht ausprobiert wurden, muss sie alternativ mögliche, oder neue Zugmöglichkeiten anbieten. Dies kann die Klasse B nur dann, wenn sie weiß, welche Varianten sie bisher schon angeboten hat.
Nun, wie gesagt, die beiden Klassen bestehen und jede von ihnen beherrscht grundsätzlich die ihr zugedachten Aufgaben. Trotzdem funktioniert die Zusammenarbeit der beiden Klassen nicht, denn die Klasse B vergisst nach jeder Anfrage den bisherigen Verlauf. Damit funktioniert das System natülich nicht.
Ich habe bisher die Klasse B als "normale", aber auch als Thread Klasse angelegt. Die Klasse B speichert nach der ersten (und allen weiteren) Abfrage durch die Klasse A alle Daten, welche erforderlich sind, um für künftige Abfragen immer nur neue Zugvarianten anbieten zu können.
Wie gesagt, nach der ersten Abfrage (und logischerweise auch nach allen folgenden) "vergisst" die Klasse B bereits alles und ist deshalb für weitere Abfragen nicht mehr zu gebrauchen.
Die Klassen A und B sind für die Lösung von St8ts-Aufgaben bestimmt. Für die Lösung von Sudoku-Aufgaben per BackingTrack genügt mir eine Klasse. Da St8ts-Aufgaben jedoch wesentlich komplexer sind, habe ich mich entschlossen, eine Aufgabentrennung durchzuführen.
Wie muss man grundsätzlich vorgehen, um eine Klasse zu realisieren, so wie ich sie mit der Klasse B habe, besser gesagt, haben möchte. Ich habe da scheinbar ein dickes Brett vor dem Kopf.
Danke schon einmal vorab für Hinweise,
kodela
ich habe zwei Klassen, Klasse A und Klasse B, und ein Problem
Die Klasse A kann mit einigen wenigen Ausnahmen alle Aufgaben eines Strategierätsels durch logische Entscheidungen lösen. Um auch extrem schwierige Aufgaben lösen zu können, soll die Klasse A mit Unterstützung der Klasse B auch die "was ist, wenn" Methode einsetzen.
Die Klasse B kann für eine teilgelöste Aufgabe systematisch einen Lösungsschritt zum Ausprobieren anbieten, mit dem die Klasse A weiter an der Lösung arbeiten kann ("was ist, wenn"). Gelingt die Lösung zunächst nicht, kann die Klasse B weitere solche Lösungsschritte anbieten. Mit anderen Worten, die Klasse B soll der Klasse A die Lösung der Aufgabe über die BackTracking-Methode ermöglichen.
Damit die Klasse B nur Zugvarianten anbietet, die bisher noch nicht ausprobiert wurden, muss sie alternativ mögliche, oder neue Zugmöglichkeiten anbieten. Dies kann die Klasse B nur dann, wenn sie weiß, welche Varianten sie bisher schon angeboten hat.
Nun, wie gesagt, die beiden Klassen bestehen und jede von ihnen beherrscht grundsätzlich die ihr zugedachten Aufgaben. Trotzdem funktioniert die Zusammenarbeit der beiden Klassen nicht, denn die Klasse B vergisst nach jeder Anfrage den bisherigen Verlauf. Damit funktioniert das System natülich nicht.
Ich habe bisher die Klasse B als "normale", aber auch als Thread Klasse angelegt. Die Klasse B speichert nach der ersten (und allen weiteren) Abfrage durch die Klasse A alle Daten, welche erforderlich sind, um für künftige Abfragen immer nur neue Zugvarianten anbieten zu können.
Wie gesagt, nach der ersten Abfrage (und logischerweise auch nach allen folgenden) "vergisst" die Klasse B bereits alles und ist deshalb für weitere Abfragen nicht mehr zu gebrauchen.
Die Klassen A und B sind für die Lösung von St8ts-Aufgaben bestimmt. Für die Lösung von Sudoku-Aufgaben per BackingTrack genügt mir eine Klasse. Da St8ts-Aufgaben jedoch wesentlich komplexer sind, habe ich mich entschlossen, eine Aufgabentrennung durchzuführen.
Wie muss man grundsätzlich vorgehen, um eine Klasse zu realisieren, so wie ich sie mit der Klasse B habe, besser gesagt, haben möchte. Ich habe da scheinbar ein dickes Brett vor dem Kopf.
Danke schon einmal vorab für Hinweise,
kodela