Hallo,
ich habe schon ewig nicht mehr programmiert, habe mir aber in den Kopf gesetzt, mir einen Solitaire Löser zu programmieren (Solitaire ist das Brettspiel in welchem man mit einem Stein über einen anderen hüpfen muss um diesen zu entfernen... und das immer so weiter bis nur noch ein Stein übrig ist).
Dabei sollte es kein festes Brett geben, sondern alles durch vorherige Eingabe geregelt werden.
Mein Problem: Ich weiß überhaupt nicht wie ich das richtig anstelle und hoffe jemand kann mir einen Denkanstoß geben.
Das einlesen der Daten ist kein Problem.
Aber wie mache ich dann weiter? Lasse ich das Programm "wahllos" nach einem Stein suchen der bewegt werden kann?
Ist es besser hier nach einem bestimmten Muster vorzugehen? Steine von oben links nach unten rechts durchgehen und prüfen ob dieser gezogen werden kann?
Wie bastel ich das ganze rekursiv (wenn ich den informatikunterricht noch richtig in Erinnerung habe, ist das der richtige Begriff :D)? Also das ich die Züge speichere und wenn kein Zug mehr geht, den letzten Rückgängig mache und dann prüfe ob jetzt andere Züge möglich sind? Hierfür muss man ja 2 verschiedene Dinge speichern, die bisherigen Züge um den letzten Rückgängig zu machen, aber die gleichzeitig auch gespeichert lassen, damit diese nicht wiederholt werden?
Oder das ganze einfach per "Brute Force" aufziehen? Einfach solange Steine versetzen bis entweder nur noch einer übrig ist oder kein Zug mehr möglich ist und komplett von vorn beginnen?
Würde mich über Denkansätze sehr freuen, weil ich echt raus bin aus der Sache
mfg
ich habe schon ewig nicht mehr programmiert, habe mir aber in den Kopf gesetzt, mir einen Solitaire Löser zu programmieren (Solitaire ist das Brettspiel in welchem man mit einem Stein über einen anderen hüpfen muss um diesen zu entfernen... und das immer so weiter bis nur noch ein Stein übrig ist).
Dabei sollte es kein festes Brett geben, sondern alles durch vorherige Eingabe geregelt werden.
Mein Problem: Ich weiß überhaupt nicht wie ich das richtig anstelle und hoffe jemand kann mir einen Denkanstoß geben.
Das einlesen der Daten ist kein Problem.
Aber wie mache ich dann weiter? Lasse ich das Programm "wahllos" nach einem Stein suchen der bewegt werden kann?
Ist es besser hier nach einem bestimmten Muster vorzugehen? Steine von oben links nach unten rechts durchgehen und prüfen ob dieser gezogen werden kann?
Wie bastel ich das ganze rekursiv (wenn ich den informatikunterricht noch richtig in Erinnerung habe, ist das der richtige Begriff :D)? Also das ich die Züge speichere und wenn kein Zug mehr geht, den letzten Rückgängig mache und dann prüfe ob jetzt andere Züge möglich sind? Hierfür muss man ja 2 verschiedene Dinge speichern, die bisherigen Züge um den letzten Rückgängig zu machen, aber die gleichzeitig auch gespeichert lassen, damit diese nicht wiederholt werden?
Oder das ganze einfach per "Brute Force" aufziehen? Einfach solange Steine versetzen bis entweder nur noch einer übrig ist oder kein Zug mehr möglich ist und komplett von vorn beginnen?
Würde mich über Denkansätze sehr freuen, weil ich echt raus bin aus der Sache
mfg