Tìm kiếm theo chiều rộng (BFS)

Tags:
AI
Algorithm
Pathfinding

C# Code

using System.Collections.Generic;

public class BFS {
    // Tìm đường đi ngắn nhất trên lưới từ start đến end
    public List<Node> FindPath(Grid grid, Node start, Node end) {
        Queue<Node> queue = new Queue<Node>();
        HashSet<Node> visited = new HashSet<Node>();
        Dictionary<Node, Node> parentMap = new Dictionary<Node, Node>();

        queue.Enqueue(start);
        visited.Add(start);

        while (queue.Count > 0) {
            Node current = queue.Dequeue();

            if (current == end) {
                // Đã tìm thấy đích, xây dựng lại đường đi
                return RetracePath(parentMap, start, end);
            }

            foreach (Node neighbor in grid.GetNeighbors(current)) {
                if (neighbor.isWalkable && !visited.Contains(neighbor)) {
                    visited.Add(neighbor);
                    parentMap[neighbor] = current;
                    queue.Enqueue(neighbor);
                }
            }
        }
        return null; // Không có đường đi
    }
    
    private List<Node> RetracePath(...) { /* ... */ }
}

Thuật toán tìm kiếm theo chiều rộng (BFS) duyệt qua đồ thị theo từng lớp. Rất hữu ích để tìm đường đi ngắn nhất trên bản đồ không có trọng số (ví dụ: lưới ô vuông).

Bình luận (0)

Bạn cần đăng nhập để có thể bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Bài viết liên quan

Thuật toán Dijkstra tìm đường đi ngắn nhất từ một đỉnh nguồn đến tất cả các đỉnh khác trong một đồ thị có trọng số không âm. Hữu ích cho việc tính toán phạm vi di chuyển.

AI
Algorithm
Pathfinding

Triển khai thuật toán A* (A-Star), một trong những thuật toán tìm đường hiệu quả nhất cho AI, kết hợp giữa chi phí đã đi (G-cost) và chi phí ước tính đến đích (H-cost).

3D
2D
AI
Algorithm
Pathfinding

Thuật toán tìm kiếm theo chiều sâu (DFS) đi sâu vào một nhánh cho đến khi hết đường, sau đó quay lại. Thường được dùng để giải mê cung hoặc duyệt cây dữ liệu (skill tree).

AI
Algorithm
Pathfinding

Hướng dẫn thiết lập và sử dụng hệ thống Navigation (NavMesh) tích hợp sẵn của Unity để AI có thể tự động tìm đường đi trong môi trường 3D phức tạp.

3D
AI
Pathfinding
Navigation

AI chỉ có thể 'nhìn thấy' và phát hiện người chơi nếu họ nằm trong một hình nón phía trước mặt nó. Hữu ích cho các game stealth.

AI
Gameplay
Stealth

AI sẽ bắn đạn về phía người chơi khi họ ở trong tầm tấn công và có một khoảng thời gian chờ (cooldown) giữa mỗi lần bắn.

AI
Gameplay
Spawning
Physics

AI sẽ phát hiện người chơi trong một phạm vi nhất định và bắt đầu di chuyển về phía họ. Khi người chơi ra khỏi phạm vi, AI sẽ dừng lại.

AI
Movement
Gameplay
Player

Một script đơn giản cho AI để di chuyển tuần tự qua một danh sách các điểm (waypoints). Khi đến điểm cuối cùng, nó sẽ quay trở lại điểm đầu tiên.

AI
Movement
Gameplay

Một cấu trúc để một con boss thay đổi hành vi và bộ kỹ năng khi máu của nó xuống dưới các ngưỡng nhất định.

AI
Gameplay
Combat

So sánh các thuật toán sắp xếp như Bubble Sort, Insertion Sort và Quick Sort và khi nào nên sử dụng chúng trong game (ví dụ: sắp xếp bảng xếp hạng).

Algorithm
Architecture
Optimization