Hallo,
bin vor kurzem nochmal auf den
A*-Algorithmus gestoßen.
Wollte diesen verwenden um ein
8-Puzzle zu lösen.
Ich habe das Puzzle in einem Array vorliegen:
0 1 2 3 4 5 6 7 8
Bildlich so:
0 1 2
3 4 5
6 7 8
Die sogenannte Neighbor-function soll alle Nachbarn eines Array-Indexes ermitteln.
Nachbarn sind all die Zahlen, die ein Feld vertikal oder horizontal von dem Array-Index entfernt liegen.
Beispiel: Neighbors(4) würde die Zahlen 1,5,7,3 zurückliefern. Neighbors(6) würde hingegen 7, 3 zurückliefern.
Meine Funktion ist nicht so toll ich hätte lieber eine schöne Lösung, wenn möglich mit Operatoren/Mathematisch anstelle von vielen Prüfungen/if's etc.
Also gesucht ist eine schöne, einfache, kurze Implementation der Neighbor-function.
Vielen Dank im voraus