Szukanie ścieżki do celu w tablicy

0

Założenie takie. Mapa do gry jest wielkości 10x10 kratek, wczytywana z pliku *.txt np. takiego (to mapa bez gracza i celu):

0100000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000100
0000001011
0000001000
0000000000

0 = brak kolizji
1 = kolizja

A tak wygląda narysowana z dodanym graczem (1,1) i jego celem (8,8):
user image
niebieski = gracz
bordowy = przeszkoda (kolizja)
żółtawy = cel (tam musi dojść postać)

Co chcę osiągnąć?
chcę odpalić funkcję, której zadaniem będzie znalezienie ścieżki do celu (czyli pozycja początkowa na obrazku to X, Y = 1, 1, końcowa = 8, 8)
Program (funkcja/procedura) ma znaleźć drogę biorąc pod uwagę przeszkody, czyli jak dorzucę celowo ścieżki pułapki to program to program to ogarnie i nie będzie kazał iść graczowi w to miejsce, w ślepy zaułek.

Postać może poruszać się tylko w pionie i poziomie (na ukos nie może), skacze z kratki na kratkę.

Czy macie pomysły jak to AI zrobić? Pytam tylko o to ustalenie odpowiedniej ścieżki do celu. Jak komuś się chce, to może opisać to pseudo kodem.

Gdyby bloków kolizji nie było w ogóle, to byłoby łatwo, bo gracz (pozycja x,y = 1, 1) szedłby do celu (pozycja 8, 8) w ten sposób - kazałbym graczowi skoczyć w osi X o x pól (by doszedł do ósmej kratki) i następnie w osi Y kazałbym mu też dojść do ósmej kratki i voilà.
W przypadku bloków kolizyjnych na mapie jest dużoooo więcej zabawy :(, ślepe uliczki, znalezienie najkrótszej drogi.

Jeśli mogę prosić o jakieś rady to proszę.

0

Algorytm A* i metryka Manhattan. Zaiste nic skomplikowanego.

0

BFS albo Dijkstra :) Albo faktycznie tak jak wyżej, ale będzie troche trudniejsze w implementacji.

0

a który jest najprostszy? (nie wymagam wydajności, pytam o prostotę tylko)

0

qwertya - dopiero co był ten temat poruszany - Tablica 2D - najkrótsza ścieżka o najmniejszym koszcie; Używaj czasem wyszukiwarki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1