2016-03-22 25 views
-4

İki noktam var. Biri oyuncunun pozisyonu ve düşmanın başka bir pozisyonudur.Grid Üzerinde En Kısa Rota Hesapla

Oyuncunun düşmana ulaşması için en kısa mesafenin nasıl hesaplanacağını öğrenmek istiyorum. Oyuncu çapraz, sadece yukarı, aşağı, sola ve sağa hareket edemez.

Bu bir ızgaradır. öyleyse sol üst köşe 0,0 vb. şeklindedir.

Herhangi bir fikrin var mı?

+0

Eğer engeller varsa [Breadth First Search] (https://en.wikipedia.org/wiki/Breadth-first_search), [Dijkstra'nın Algoritması] (https://en.wikipedia.org/wiki) kullanırdım/Dijkstra's_algorithm) veya [A *] (https://en.wikipedia.org/wiki/A*_search_algorithm). Eğer engel yoksa [Manhatten Distance] kullanırım (https://en.wiktionary.org/wiki/Manhattan_distance). Ama belki de Google'a biraz daha iyi ve bunu kendi başınıza çözmeye çalışın ve daha spesifik bir soruyla geri dönün. – martijnn2008

+0

Sorunuz daha açık olmalıdır. Çözüm bulmak için çaba sarf ettiniz mi? Bir şey uyguladın mı? Sorununuzu çözmek için kullanılabilecek pathfinding/belki grafikler/algoritmalar hakkında bir şeyler okuyun. – tommus

cevap

0

Dijkstra algorithm, her düğümün ızgaranızın bir hücresini temsil ettiği bir grafikte uygulayabilirsiniz ve her kenarın bir maliyeti vardır (bu da bir ilk aramayı kullanmanıza izin verir, ancak daha genel kullanım için Tam Dijkstra algoritması size yardımcı olabilir).

0

En kısa yolun ne olduğunu bilmek zor çünkü neden bahsettiğinizi tam olarak bilmiyoruz. Oyuncu ve düşman arasında hiçbir şey olmayan standart bir ızgaraysa, en kısa yol önemsizdir. Geri gitmeden uygun birimlerin üzerinden aşağı inen herhangi bir yol en kısa yoldur. Tüm ünitelerin ve daha sonra da tüm ünitelerin aşağıya doğru, daha sonra da aşağı ve sonra aşağı doğru ve daha sonra yan üniteye kadar koordinatlar sıraya girer.

Eğer engelleriniz varsa, o zaman Jonathan'ın bahsettiği gibi Dijkstra algoritması yardımcı olacaktır. Kılavuzun erişemediğiniz bölümlerini içermezsiniz. Algoritmanız daha sonra düğümlerin içinden geçemediği için engellerin etrafında bir yol bulmak zorunda kalacak.

İlgili konular