Aus Spaß habe ich versucht, einen Knight's Tour (https://en.wikipedia.org/wiki/Knight%27s_tour) Löser in gprolog mit der Warnsdorf-Regel zu schreiben.Übersetzen eines tabellierten Prädikats von b-prolog nach gprolog
Ich fand einen anderen SO Post nach der Effizienz, die eine Lösung in B-Prolog zur Verfügung stellte: knight's tour efficient solution.
Mein Problem ergibt sich mit dem folgenden Abschnitt:
:- table warnsdorff(+,+,+,+,+,-,-,min).
warnsdorff(R, C, X, Y, Visits, NewX, NewY, Score) :-
possible_knight_moves(R, C, X, Y, Visits, NewX, NewY),
possible_moves_count(R, C, NewX, NewY, [(NewX, NewY) | Visits], Score).
B-prolog Merkmale eingereicht Prädikate und gprolog nicht. Ich habe große Schwierigkeiten, den Tabellenabschnitt in gprolog zu übersetzen. In der Praxis soll die Funktion die Bewegung von der aktuellen Position zurückbringen, die die kleinste Anzahl der möglichen Züge von der neuen Position (Krawatten sind zufällig ausgewählt) ergibt.
Jede Hilfe würde sehr geschätzt werden. Prost!
Frage Dr. Google über "Springer Tour Prolog". Es gibt viele Lösungen. – false
"zum Spaß" ähnliche Fragen beginnen zu schwärmen machen mich denken, das ist eine Zuordnung (siehe http://stackoverflow.com/questions/43622353/gprolog-knights-tour-using-warnsdorffs-rule und http: // stackoverflow. com/questions/43628413/simulating-knight-movement-using-prolog) – Rafalon