/// <summary> /// ルートを計算する /// </summary> private void CalcRoute() { // セルマップがなければ、何もしない if (map == null || map.Width == 0) { return; } // A* を生成する var astar = new Astar8<Cell>(map, 10); //// ログ処理を設定 //astar.Log = msg => Debug.WriteLine(DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss.fff] ") + msg); // ルートを計算する route = astar.FindRoute(startPos, endPos); // 現在位置を始点にする currIndex = 0; // マップを再描画 DrawMap(); }
private void Start() { var astar = new Astar8<Cell>(CellMap, 10); // デバッグモード if (checkBoxDebug.Checked) { astar.Log = log; } SuspendLayout(() => { log("start calc"); var route = astar.FindRoute(StartPos, EndPos); log("end calc"); if (route == null) { log("route not found"); } else { log($"route found: {route.Count} steps"); route.ForEach(c => log($"{c.X},{c.Y}")); } }); }