![]() |
Backtracking: Springer-Problem beim Schach (Optimierung)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo allerseits! :)
Ich hab da so ein kleines Problem, bei dem ich auf eure Hilfe hoffe: Wir haben im Informatik-Unterricht momentan Backtracking als Thema. Dabei sollten wir mit Hilfe von Delphi das "Springer-Problem" vom Schach ausprogrammieren. Das Grundgerüst habe ich auch schon stehen, aber leider happert es bei uns an der Optimierung. Mit 7 * 7-Feldern läuft er noch durch, aber bei 8 * 8 dauert es schon >20min auf nem 1GHz Celeron (abgebrochen). Ich hab das komplette Programm mal als *.zip-Datei angehängt. Wir arbeiten in der Schule mit Delphi 6. Kann mir jemand ein paar Tipps + Anleitungen geben, wie ich das Programm noch weiter optimieren kann? :) Die Struktur der Procedures soll weitesgehend so bleiben, da wir die vorgegeben gekriegt haben. :!: Das größte Problem an der Sache ist aber, dass die Deadline schon morgen um 10:30Uhr ist. Ich (und meine Projektmitarbeiten, die aber überhaupt gar keine Ahnung haben :roll: ) wäre(n) da sehr dankbar! Stehe für weitere Fragen natürlich den Tag über bereit! Grüße & auf ein harmonisches Zusammenleben im Forum! :) |
Re: Backtracking: Springer-Problem beim Schach (Optimierung)
Dieser Algo wird Stunden brauchen, was aber nicht direkt am Algo liegt. Sondern an der Vorgehensweise.
Schau mal hier.. ![]() Weiter unten auf dieser Seite ist noch ein Algo mit Heuristik. Der rechnet das in ein Paar Sekunden. Gruß Net7 |
Re: Backtracking: Springer-Problem beim Schach (Optimierung)
Liste der Anhänge anzeigen (Anzahl: 1)
haben wir gerade in der schule gemacht.. hier haste was.. guckst du Annhang... musste so modifizieren wie du gern hättest!
Ach ja... bau nen abbruchbutton ein ;) kann ganz schön nervig sein Mist: hätte lesen sollen.. naja schneller wird das auch nicht sein... aber ist vielleicht nen bisschen besser struckturiert als deins. Aber zur optimierung würd ich mir die Seite meines vorredners angucken! |
Re: Backtracking: Springer-Problem beim Schach (Optimierung)
Danke euch beiden erstmal!
Hab mir die Seite mal ausgedruckt und werde mich dann mal dadurch kämpfen. Hat denn jmd. nich so "ad hoc" nen paar Zeilen Quelltext oder kann mir sagen, WAS ich verändern muss? :oops: :) |
Re: Backtracking: Springer-Problem beim Schach (Optimierung)
OT:
Man bedenke, dass das ein 12 Jähriger im Kopf bei "Wetten, dass?" gelöst hat. Er hat das Spielfeld nicht gesehen. :D |
Re: Backtracking: Springer-Problem beim Schach (Optimierung)
Ich war das nich :-D
|
Re: Backtracking: Springer-Problem beim Schach (Optimierung)
Hallo!
Habe grad mal die Netzseite aufgerufen, auf der das Springerproblem erklärt ist. Dazu hab ich paar Fragen: Zitat:
Zitat:
-2 Felder hoch, 1 Feld rechts/links -2 Felder links, 1 Feld hoch/runter -2 Felder rechts,1 Feld hoch/runter -2 Felder runter,1 Feld rechts/links Ich verstehe Schritt 1 so, das ich alle vom Springer erreichbaren Felder in Beutel 1 lege. Und zwar als geeignete Datenstruktur, die aufzeigt, welches Feld Nachfolger ist. Baumstruktur, denk ich mal, und zwar so: -- -- | | | --.-- | | | -- -- Der Punkt in der Mitte soll die Position des Springers sein. Die Striche symbolisieren die möglichen Wege. Immer, egal welche Richtung -> 2 vor(rück,links,rechts) und dann ein Feld 90 Grad versetzt in 2 Richtungen. Wieso muß ich dann biem Ziehen noch mal Felder in Beutel 1 legen? Wenn ich die richtige Datenstruktur habe, habe ich doch auch die blegbaren Felder! Zitat:
Zitat:
Was ist das nun schon wieder? Ich dachte (siehe oben), in Beutel 2 seien die Felder, die schon angesprungen wurden? Wo liegt mein Denkfehler? schöni |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz