Ich habe Probleme, den kürzesten Weg zwischen zwei Quadraten im Raster zu finden.Lee's Algorithmus - Finden von Zeichen in der Tabelle
Ich möchte Lee's Algorithmus implementieren, aber mein Kampf ist es, die Nachbarn der spezifischen Koordinate in der Tabelle zu finden.
Was bin ich nicht ganz sicher, wohin den Cursor im Raster bewegen, wenn ich die Nachbarn mit einer bestimmten Nummer beschrifte. Ich habe vier Bewegungen im Raster, also beschrifte ich immer vier Nachbarn des aktuellen Punktes, aber wohin soll ich dann gehen?
Beispiel:
Mein Eingang:
Größe des Gitters: MXN
Charaktere, die in der Tabelle sein würden. Zum Beispiel ABCDEF ... (Es ist eine Art Keyboard)
String, der durch die Tabelle geschrieben werden würde:
Zum Beispiel: BCD
Ausgabe des Programms würde mindestens drückt, dies zu schreiben spezifische Zeichenfolge. Startposition des Cursors im Raster befindet sich in der oberen linken Ecke. Pressen sind: hoch, runter, links, rechts und ENTER - das wird das Zeichen
drucken Mein Startansatz ist: Finden Sie zuerst die Position des Zeichens der Zeichenfolge in der Tabelle. Dann mach eine Matrix mit Abständen, die am Anfang überall Nullen hat. Dann überprüfe, ob das gefundene Zeichen in der oberen linken Ecke ist. Wenn ist, dann ist die Anzahl der Pressen 1, finde ein anderes Zeichen. Else label Nachbarn und bekomme den aktuellen Brief. Wenn Sie zum aktuellen Buchstaben gelangen, speichern Sie die Anzahl der Pressen und suchen Sie das nächste Zeichen von der Position des vorherigen Zeichens.