In meinem Projekt muss ich eine Liste möglicher Bewegungen erstellen. Ich habe das schon gemacht, aber ich muss die möglichen Züge von vorherigen Zügen filtern. Wie kann ich das machen?Filterelemente einer Liste in Prolog
Von:
PossibleMoves = [(up,1,2),(down,2,4),(left,1,3)],
PreviousMoves = [(up,1,2),(down,2,4)].
An:
PossibleMovesLeft = [(left,1,3)].
versuchte ich delete
, \+ memberchk
, ohne Erfolg. Vielleicht habe ich etwas falsch gemacht.
'subtrahieren ([X], [], [2]).' Richtig gelingt mit 'X = 2' aber subtrahieren ([X], [1], [2]). 'scheitert, während wiederum 'X = 2, subtrahieren ([X], [1], [2]).' gelingt. – false
@false Ich habe die Frage gelesen, dass "Set" und "Delete" bereits instanziiert sind, also sehe ich kein Problem damit. Sollte eine andere Form benötigt werden, die _produce_ 'Set' erlaubt, sollte es nicht zu schwierig sein, dies zu tun. Was ich versucht habe zu vermitteln, ist, dass die Kernfrage relativ einfach ist - entferne einfach alle Elemente in einer Liste von einer anderen Liste - und dass das OP sich zu sehr auf Labyrinthe konzentriert (ich habe dieses Tag entfernt, da die Frage nichts zu tun hat) mit Labyrinthe). – SQB
Schreiben Sie dann Ihre Annahmen in die Antwort. Denkst du, dass ein Anfänger in der Lage ist, all diese Annahmen zwischen den Zeilen zu lesen? – false