Tôi đang loay hoay với việc viết một game nhập vai chiến thuật thực sự kém trong C ++. Cho đến nay tôi có một bản đồ ô 2D và chỉ có thuật toán A * hoạt động dựa trên mã giả trong wikipedia .
Nhưng những game nhập vai chiến thuật thực sự không chỉ tìm thấy con đường tốt nhất trên một mặt phẳng và di chuyển đến đó. Chúng thường có phạm vi di chuyển hạn chế và phải leo lên hoặc xuống. Nếu bạn đã từng chơi Final Fantasy Tactics, những thứ này sẽ bị ảnh hưởng bởi các chỉ số Di chuyển và Nhảy. Đây là nơi tôi bị lạc. Làm cách nào để thay đổi thuật toán A * để nó tìm thấy đường dẫn tốt nhất tới mục tiêu, nhưng đường dẫn chỉ dài quá nhiều gạch? Làm thế nào tôi nên lấy chênh lệch chiều cao và nhảy số liệu thống kê? Làm thế nào để tôi thực hiện nhảy qua một khoảng cách?
Nếu nó giúp, ngay bây giờ bản đồ của tôi được đại diện bởi một đối tượng Vector of Tile. Mỗi ô có các con trỏ về phía Bắc, Nam, Đông và Tây, được đặt thành nullptr nếu không có ô nào tồn tại ở đó, chẳng hạn như dọc theo cạnh của bản đồ hoặc nếu một ô được đặt thành không thể vượt qua.