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); }
//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]); }