Exemplo n.º 1
0
        /// <summary>
        /// ルートを計算する
        /// </summary>
        private void CalcTerritory()
        {
            // セルマップがなければ、何もしない
            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);

            // ルートを計算する
            var workMap = astar.Calc(startPos, 100);

            //
            territory = workMap.Where(c => c.StepScore > 0 && c.StepScore <= 50);

            // 現在位置を始点にする
            currIndex = 0;

            // マップを再描画
            DrawMap();
        }