Dies ist ein Problem, das ich leicht genug in einer nicht funktionalen Weise lösen kann.Den kürzesten Pfad zwischen zwei Punkten auf einem Gitter finden, mit Haskell
Aber die Lösung in Haskell gibt mir große Probleme. Ich bin unerfahren, wenn es um funktionale Programmierung geht, ist sicherlich ein Grund.
Das Problem:
Ich habe ein 2D-Feld in Rechtecken gleicher Größe unterteilt. Ein einfaches Gitter. Einige Rechtecke sind leerer Raum (und können durchgelassen werden), während andere unpassierbar sind. Gegeben ein Startrechteck A und ein Zielrechteck B, wie würde ich den kürzesten Weg zwischen den beiden berechnen? Bewegung ist nur vertikal und horizontal möglich, in Schritten ein einzelnes Rechteck groß.
Wie würde ich dies in Haskell erreichen? Codefragmente sind sicherlich willkommen, aber auch nicht unbedingt notwendig. Und Links zu weiteren Ressourcen sind ebenfalls sehr willkommen!
Danke!
Dies klingt definitiv Dijkstra-Algorithmus oder zumindest eine Variation davon. – MatrixFrog
Klingt wie der A * -Algorithmus. (Ich kann den Wikipedia-Link nicht korrekt posten). – CiscoIPPhone