Hejka
Postanowiłem zrobić grę sliding puzzle 3x3. Jak testuje główny algorytm a* (astar) to niby wszystko działa ale nie do końca.
Np dla: 7 3 2 5 0 1 8 6 4 wychodzi 22 ruchy (1 2 3 4 5 6 7 8 0) natomiast na githubie dla tego samego zestawu jest 20 ruchów.
Tu i tu jest użyta charakterystyka manhattan distance. Mam też charakterystkę hamming distance i dla tej wychodzi 20 ruchów. (dokładnie tyle samo i takich samych co na githubie). Czy ktoś spotkał się z takim problem i wie jak go rozwiązać ?
Pozdrawiam
A jak to implementujesz? problem może być równie dobrze w implementacji samego algorytmu, w kodzie.
7 3 2 5 0 1 8 6 4
A to nie powinno być 8 kafelków, skoro plansza 3x3, żeby jeden kafelek był pusty? Chyba że to inny rodzaj układanki niż ten, o którym myślę.
no i ten zapis znaczy, że plansza wygląda tak:
7 3 2
5 0 1
8 6 4
?
Chyba, że ej, zero jest tam, gdzie jest puste? No tak, to by miało sens. Trzeba jakoś zapisać pusty element też.
LukeJL napisał(a):
A jak to implementujesz? problem może być równie dobrze w implementacji samego algorytmu, w kodzie.
7 3 2 5 0 1 8 6 4
A to nie powinno być 8 kafelków, skoro plansza 3x3, żeby jeden kafelek był pusty? Chyba że to inny rodzaj układanki niż ten, o którym myślę.
no i ten zapis znaczy, że plansza wygląda tak:7 3 2 5 0 1 8 6 4
?
- Manhattan Distance
- Hamming distance
- Pusty kafelek to zero :)
- Link do githuba link
- Ruchy u - up, d - down, l - left, r - right
Miałem mały błąd już poprawiłem i działa :).