Ich habe bereits eine Funktionalität implementiert, wenn Keeper automatisch mit Breite ersten Suchalgorithmus bewegt. Jetzt möchte ich, dass die Boxen automatisch verschoben werden (wenn der Halter die Box von der Quelle zum Ziel bewegen kann, ohne eine andere Box zu verschieben). Wie mache ich es? Ich habe versucht, BFS zu modifizieren, noch nicht erfolgreich.Sokoban Spiel: Boxen automatisch verschieben
UPDATE: Ich brauche das Rätsel nicht zu lösen. Stattdessen möchte ich eine praktische Benutzeroberfläche entwickeln, wenn Benutzer Boxen mit ihrer Maus bewegen können. Dazu brauche ich etwas Algo, mit dem sich die Bewegungssequenz berechnen lässt. Aber es geht nur darum, einzelne Boxen zu bewegen und wenn nur keine anderen Boxen bewegt werden sollten, um dies zu tun.
Was ist das spezifische Problem, das Sie haben (neben dem breiten "es funktioniert nicht")? – Attila
Es löst einfache Routen gut (wenn der Boxpfad jede Position nur einmal enthält). Aber es gibt auch einen komplexen Fall, wenn die Box an jeder Stelle mehr als einmal vorgeht (z. B. bewegt man eine Box in einen weiten Bereich, um den Keeper neu zu positionieren, und bewegt dann die Box auf dem gleichen Weg zurück). Ich glaube, ich sollte nicht nur speichern, wenn ein bestimmter Ort besucht wird, sondern auch, wo der Wärter gerade ist). –
Ich fragte mehr, ob es einige Algorithmen gibt, die die Leute für diese Aufgabe bereits entwickelt haben. Ich weiß nicht, ob mein Ansatz optimal sein wird, während ich es optimal finde. –