it-swarm-tr.com

Her programlama dili için hareket masrafları olan A * yol bulma algoritmasını nasıl uygularım?

İnsanların A * yol bulma algoritmasının basit, optimize edilmiş uygulamalarının kodunu her dilde göndermelerini sağlayabilir miyiz?

Bu çoğunlukla eğlence için ve aslında bir ActionScript 3 sürümünü edinmekle ilgilenmeme rağmen, stackoverflow'un yapabileceği şeylerle oynamak.

Fakat fikir şu ki, bu "Soru" farklı programlama dilleri oluşturulmuş olsa bile sonsuza dek gelecekte güncellenmeye devam edecek!

İnternette "çevrilmiş" sözde kodları görebileceğiniz başka hiçbir yerde bilmiyorum (her biri daha az). Bu değerli bir kaynak gibi görünüyor ve bu sitenin ne için tasarlandığı önemli olmasa da, denemenin ve yığılma akışının kullanabileceği değerli bir şey olup olmadığına bakmanın hiçbir zararı yok!

29
IQpierce

İşte bir JavaScript uygulaması , kaynak kodu ve bir çevrimiçi demo hobi/araştırma projesi olarak yaptım. 

Çok basit, ancak bazı parameleri değiştirebilirsiniz (ızgara boyutu, duvar sayısı, hata ayıklama bilgisi açma/kapama). İncelenen her düğüm için hesaplanan f (x), g (x) ve h(x) değerlerini gösterir.

Demo sayfası uygulaması jQuery kullanır.

11
Brian Grinstead

İşte bir C++ uygulaması. Şimdilik oldukça iyi bir şekilde test edildi ve ticari video oyunlarında ve çeşitli AI projelerinde kullanıldı.

http://code.google.com/p/a-star-algorithm-implementation/

Ve aslında ilk yazdığım bir ders var:

http://www.heyes-jones.com/astar.html

9
justinhj

İşte bir C # uygulaması dili oluşturan insanlardan biri tarafından yapıldı.

5
Joel Coehoorn

Farklı programlama dillerinde kaynak kodları ve demolar:

Her dil için demo'nun listesi:

C++: 1
Java: 3
Processing: 1
Actionscript 3 (Flash): 4
Flex (Flash): 1
Javascript: 6
C#: 1
Ruby: 1
Prolog: 1
Unity: 1
Lua: 1

Farklı dillerde Pathfinding Demo

Keyfini çıkarın :)

3
Sir

Python ve C++ kaynak kodu ile birlikte etkileşimli öğretici . Kod genel olarak grafikler üzerinde çalışmak için yazılmıştır ve ızgaralara özgü değildir (web üzerindeki A * örneklerinin çoğunda bulacağınız gibi). Öncelik kuyruğu için ikili yığınlar kullanır (hem Python hem de C++ standart kütüphanelerinde ikili yığınlara sahiptir). Bu sayfada Breadth First Search, Dijkstra Algoritması ve A * var. Kod oldukça kısa (bulabildiğim çoğu A * örnek kodundan daha kısa).

1
amitp

Bir AS 3 örneği ... http://www.dauntless.be/astar/

1
Chris

Bir uygulama değil, fakat http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html 'nin algoritmanın özellikle açık bir açıklaması olduğunu gördüm. Açık ve kapalı kümeleri uygulamak için kullanılabilecek çeşitli veri yapılarının genişletilmiş bir incelemesinin yanı sıra, açık ve kapalı kümeleri uygulamak için kullanılabilecek çeşitli veri yapılarının geniş kapsamlı bir incelemesinin yanı sıra, özel davranışlar elde etmek için sezgisel değişiklikler (örneğin, sadece sınırlı hareket açısını destekleyen sistemlerde düz çizgiler yaklaşımı), genel tuzaklar (örneğin, gerçek hareket maliyetlerine farklı ölçeklerde bir sezgisel kullanma) ve bazı optimizasyonlar (örneğin, bir Kafes).

1
Jules

A Clojure uygulaması, PAIP 'de verilen bir örneğe dayanarak yoğun olarak.

1
Jeff Foster

Bir VB6 uygulaması.

http://www.gandraxa.com/pathfinding_with_a_star.xml

Bu özellikle yararlıdır çünkü işlem boyunca adım atabilir ve algoritmanın nasıl çalıştığını iyi anlayabilirsiniz. Algoritmayı başka bir dile çevirirken bu oldukça değerli olabilir.

0
G Mastros

C * 'yi C'yi öğrenme yolu olarak kullandım, bu yüzden güzel olacağına söz veremem, ama işe yarıyor! Bunu Euler # 83 Projesini çözmek için kullandım ve iki test üzerinde çalıştı.

https://github.com/PeterMitrano/A-star-Pathfinding/blob/master/problem_83.c

0
Peter Mitrano

GraphHopper'da optimize edilmiş Java uygulaması mevcuttur.

0
Karussell