Esempio n. 1
0
        private void FindRandomDestanation()
        {
            var       point = _board.GetMyPosition();
            PathGraph path;

            do
            {
                int offsetX = _random.Next(-_distance, _distance);
                int offsetY = _random.Next(-_distance, _distance);

                _randomPos = new BoardPoint(point.X + offsetX, point.Y + offsetY);

                path = _pathFind.GetGraphToPoint(_randomPos.X, _randomPos.Y);
            } while (path == null);

            _pathToDestination = GraphToAction.ParseToStack(path);
        }
Esempio n. 2
0
        //todo: добавить поиск наиболее выгодного варианта
        /// <summary>
        /// Получить список действий до ближайшего золота
        /// </summary>
        /// <returns></returns>
        private void FindNearGold()
        {
            goldPaths.Clear();

            foreach (var nodeGold in _pathMap.Gold)
            {
                var node = nodeGold;
                var path = _pathFind.GetGraphToPoint(ref node);
                if (path != null)
                {
                    goldPaths.Add(path);
                }
            }

            if (goldPaths.Count == 0)
            {
                _wayToNearGold.Clear();
                return;
            }

            goldPaths.Sort((item1, item2) => item1.Lenght.CompareTo(item2.Lenght));
            _wayToNearGold = GraphToAction.ParseToStack(goldPaths[0]);
        }