Thuật toán A* đối với mọi ngôn ngữ đều khá là đơn giản. Có 2 tập hợp được sử dụng, Open và Closed. Tập Open chứa các ô mà sẽ được kiểm tra. Khởi đầu, thì tập Open chỉ chứa duy nhất một phần tử là phần tử. Tập Closed chứa những ô đã được kiểm tra. Khởi đầu thì tập Closed rỗng. Về mặt hình học thì tập Open là biên, còn tập Closed là nội địa của những khu vực đã được đi qua. Mỗi một ô đều lưu một biến con trỏ để xác định ô cha để ta có thể biết được nó được thiết lập bằng cách nào.
Có một vòng lặp chính trong chương trình để chọn ra một ô N tốt nhất trong danh sách Open (ô có chứa giá trị F nhỏ nhất) và kiểm tra nó. Nếu N là đích, thì ta đã hoàn thành công việc, nếu không thì ta sẽ di chuyển N từ danh sách Open sang danh sách Closed. Sau đó các láng giềng của N được kiểm tra. Những láng giềng nào đã ở trong danh sách Closed , thì ta sẽ không phải kiểm tra lại nữa. một láng giềng đang nằm trong danh sách Open thì sẽ được kiểm tra vì thế ta cũng sẽ không phải quan tâm tới nó ngay (*). Trường hợp còn lại ta sẽ thêm ô đó vào danh sách Open và ghi nhớ ô cha của nó là ô N. Chi phí đường đi để tới '
N , G( '
N ) = G(N) + chi phí di chuyển từ N đến N'.
(*) Ở đây ta bỏ qua một chi tiết nhỏ, là nếu trường hợp một láng giềng đã nằm trong danh sách Open ta sẽ kiểm tra hai giá trị G nếu giá trị G mới bé hơn ta sẽ cập nhật lại các thông số của ô đó trong danh sách Open. Nếu không thì ta sẽ bỏ qua.
1. Đưa ô khởi đầu vào danh sách Open,danh sách Closed rỗng. 2. Tiến hành lặp như sau :
A. Tìm ô có giá trị F nhỏ nhất, ghi chú nó là ô hiện tại B. Chuyển nó vào danh sách Closed.
C. Với các 8 láng giềng của ô hiện tại ta kiểm tra
- Nếu nó là vật cản hoặc đã nằm trong danh sách Closed thì bỏ qua ô này, nếu không thì thực hiện bước tiếp theo
- Nếu nó chưa có trong danh sách Open thì thêm ô này vào danh sách Open. Ghi chú ô hiện tại làm ô cha của ô này và các giá trị F, G, H.
- Nếu nó đã nằm trong danh sách Open kiểm tra xem đường đi tới ô đó có tốt hơn nếu đi qua ô hiện tại bằng cách sử dụng giá trị G làm giá trị đo. Nếu giá trị G nhỏ hơn có nghĩa là đường đi sẽ tốt hơn, nếu như vậy ta sẽ thay đổi lại ô cha của ô này thành ô hiện tại và tính toán lại các giá trị F,G,H của ô này. Nếu như trước đó bạn đã sắp xếp danh sách Open theo thứ tự F thì bây giờ sẽ phải thay đổi lại thứ tự của danh sách.
D. Dừng thuật toán lại khi :
- Đưa được ô đích vào danh sách Closed, trong trường hợp này thì đường đi đã được tìm ra nếu không
- Thuật toán không tìm được ô đích, và danh sách Open rỗng khi đó thì không có đường đi.
3. Ghi nhớ lại đường đi. Lần ngược lại từ ô đích tới ô cha của nó cho tới khi đến được ô khởi đầu, và ta đã xác định được đường đi.