Với nhiều triển khai sẵn có, thực thi nhanh nhất (ít nhất là CPU, nhị phân nhỏ nhất), triển khai đa nền tảng (Linux, Mac, Windows, iPhone) cho C++ bằng lưới nhỏ?Triển khai A * đa nền tảng nhanh nhất?
Triển khai
Google trả về:
- http://www.heyes-jones.com/astar.html (Hầu hết các liên kết trên trang web đó đã chết.)
- http://www.grinninglizard.com/MicroPather (Said là chậm hơn so với Heyes-Jones'.)
- http://www.ceng.metu.edu.tr/~cuneyt/codes.html (Mã C++ chung).
- http://swampthingtom.blogspot.com/2007/07/pathfinding-sample-using.html
- http://opensteer.sourceforge.net/ (Thú vị cho các trò chơi, không phải A *.)
- Stack Overflow on Dijkstra's Algorithm
Bất kỳ những người khác?
The Wheel
Câu hỏi đặt ra, như hỏi, gắn liền với tái sử dụng (cắm vào một trò chơi), không tái tạo (ít nhất là không cho đến khi thực hiện được thể hiện là một vấn đề). Nó có thể chỉ ra rằng một thực hiện Dijkstra (hoặc thuật toán pathfinding chung) là phù hợp hơn, hoặc rằng việc triển khai nhanh nhất không đủ nhanh. Tôi đánh giá cao các đề xuất của các thuật toán thay thế, tuy nhiên câu hỏi không phải là, "Tôi có nên cuộn A * của riêng mình không?"
- Joel on Software - Not Invented Here Syndrome
- Coding Horror: Don't Reinvent the Wheel
- Overcoming the "Not Invented Here Syndrome"
Bạn không cần phải xây dựng tăng cường nếu bạn sử dụng thư viện chỉ tiêu đề. Boost.Graph là tiêu đề chỉ khi bạn không sử dụng các công cụ tập tin Dot. Tôi đã sử dụng một số thư viện Boost tiêu đề chỉ trên iPhone và họ làm việc tốt out-of-the-box. –