Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Solitaire (Brettspiel) - Umsetzungsproblem
Jerk - Di 16.12.08 15:22
Titel: Solitaire (Brettspiel) - Umsetzungsproblem
Wir sollen für
Solitaire ( Brettspiel ) [
http://de.wikipedia.org/wiki/Solit%C3%A4r_(Brettspiel)] ein Programm erstellen, welches möglichst effizient, das Spiel "löst" wenn ein Stein mit der Feldnummer n fehlt.
Was ich weis, das Bruteforce/Backtracking wohl sinnlos sein wird. Was ich nicht weis ist, wie ich die Lösung des Spiels sonst umsetzen soll.
Hilfsfunktionen sind nicht das Problem sondern das Spiel selber.
Ich dachte ersteinmal an eine Art Regeln die man aufstellt, von wegen wenn der Stein fehlt dann tausche niemals den anderen o.ä. aber damit komm ich nicht wirklich weiter.
Wie gehe ich am besten an das Problem heran?
nagel - Di 16.12.08 15:25
Der von dir verlinkte WP-Artikel weiß was dazu ;) .
Jerk - Di 16.12.08 15:31
*facepalm*
Ok also sozusagen einen "Baum" erstellen.
d.h.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| n= anzahl verbleibender Spielsteine FUNKTION TEST : BOOLEAN Für jedes leere Feld: Gibt es mögliche Sprünge? Springe n=n-1 wenn TEST = FALSE mache zug rückgängig SONST Gebe Ergebnis aus SONST Wenn n=1 return TRUE SONST return FALSE |
Jerk - Fr 19.12.08 09:40
Sorry für den Doppelpost, aber ich sitze noch an dem Problem.
Das Rekursive Backtracking habe ich verstanden, doch bekomme ich es nicht hin die "Züge" rückgängig zu machen. Da das Spielfeld ja ein Array (3-Dim) ist dachte ich wäre ein Stack doch eher ungeeignet oder?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!