• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Algorytm znajdowania drogi z labiryntu.

Object Storage Arubacloud
+1 głos
3,777 wizyt
pytanie zadane 5 czerwca 2017 w C i C++ przez Koper Początkujący (310 p.)

Witajcie! 
Mam pewien problem. Otóż muszę rozwiązać pewne zadanie na zaliczenie. Znajduje się ono na stronie themis.lo14.wroc.pl:

Dla danego opisu labiryntu odpowiedz, czy istnieje droga do wyjścia, gdzie 1 oznacza ścianę, zero oznacza korytarz (pole, przez które możemy przejść) a 2 oznacza wyjście. Startujemy zawsze, ale to zawsze w lewym górnym rogu.

Wejście

na samym początku dwie liczby n,k <=100 n oznacza liczbę wierszy (n jak wiersze) a k liczbę kolumn (k jak kolumny), w kolejnych n wierszach jest po k liczb pooddzielanych spacjami opisujących labirynt.

Wyjście

1 jeśli da się przejść przez labirynt, 0 w przeciwnym przypadku.

Przykład

Dla danych wejściowych

3 11
0 0 0 1 0 0 1 1 0 0 0 
0 0 0 1 0 0 0 0 0 1 0 
0 0 0 0 0 0 1 0 0 0 2 

poprawną odpowiedzią jest

1

 

Nie mam pojęcia jak się do tego zabrać. Mógłby ktoś mnie w jakiś sposób nakierować czego użyć, żeby poradzić sobie z tym zadaniem.

2 odpowiedzi

+2 głosów
odpowiedź 5 czerwca 2017 przez Wiciorny Ekspert (269,710 p.)
Algorytm dijkstry np http://www.geeksforgeeks.org/backttracking-set-2-rat-in-a-maze/

http://www.geeksforgeeks.org/shortest-path-in-a-binary-maze/  zarówno wyjscie z labiryntu jak i szukanie najkrótszej z dróg.

Algorytmy BFS,DFS także możesz przeglądnąć
komentarz 6 czerwca 2017 przez adrian17 Ekspert (344,860 p.)
Jeśli wszystkie odledłości/"trudność" w labiryncie są takie same (a tutaj tak jest), algorytm dijkstry degraduje się do BFSa - więc najlepiej zacząć od niego lub DFSa, bo są trochę prostsze.

(Potem jeszcze opcjonalnie A*.)
komentarz 6 czerwca 2017 przez Wiciorny Ekspert (269,710 p.)
No właśnie A* też fajny, tylko - podejrzewam, że raczej tutaj chodziło o te prostsze algorytmy właśnie typu BFS
0 głosów
odpowiedź 6 czerwca 2017 przez obl Maniak (51,280 p.)

Kiedyś napisałem program Pathfinder, który za pomocą algorytmu przeszukiwania sąsiadujących pól znajduje ścieżkę najkrótszego przejścia. Program ładnie pokazuje jak ten algorytm działa i jest opisany i dostępny na mojej stronie obliczeniowo.com.pl/?id=PathFinder - znajdowanie najkrótszej ścieżki

Uproszczony algorytm znajdowania ścieżki zaimplementowałem w gierce napisanej w  JavaScipt-cie obliczeniowo.com.pl/?id=Gra Mordercze Działka napisana w JavaScript

Tutaj krótki filmik pokazujący działanie programu

https://www.youtube.com/watch?v=9fZhoPan4Rc

komentarz 6 czerwca 2017 przez adrian17 Ekspert (344,860 p.)
Ładne. Gdyby kod był na githubie to bym spojrzał :P

Podobna wizualizacja w przeglądarce:

https://qiao.github.io/PathFinding.js/visual/

Podobne pytania

0 głosów
1 odpowiedź 646 wizyt
0 głosów
2 odpowiedzi 907 wizyt
+1 głos
1 odpowiedź 213 wizyt

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...