首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實現 A* 算法 (3) — RoutePlanData 與移動代價設計

     編輯:關於C語言

移動代價設計:整數化提升效能

直角移動 (上下左右) 代價 = 10,斜向移動代價 = 14 (≈ √2 × 10)。放大 10 倍改用整數運算,避免浮點數效能損耗。

RoutePlanData:單次規劃的上下文資料


public class RoutePlanData
{
    public Rectangle CellMap { get; }           // 地圖矩形範圍
    public IList ClosedList { get; } = new List(); // 已處理節點
    public IList OpenedList { get; } = new List(); // 待處理節點
    public Point Destination { get; }           // 目標位置

    public RoutePlanData(Rectangle map, Point destination)
    {
        CellMap = map;
        Destination = destination;
    }
}

職責

  • CellMap:邊界檢查依據。
  • OpenedList:已發現但未展開的節點 (Open Set)。
  • ClosedList:已展開完成的節點 (Closed Set)。
  • Destination:計算 H 值的目標座標。

此類別為單次 Plan 呼叫的暫存狀態容器,不持有演算法邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved