Esempio n. 1
0
 public static IEnumerable <Point> NearPoints(this Point point)
 {
     foreach (Direction d in Enum.GetValues(typeof(Direction)))
     {
         yield return(point.AddDirection(d));
     }
 }
Esempio n. 2
0
 public static IEnumerable <Direction> GetAvailableDirections(Point current)
 {
     foreach (Direction dir in Enum.GetValues(typeof(Direction)))
     {
         if (Nodes.TryGetValue(current.AddDirection(dir), out var node) && node != HexType.Rock)
         {
             yield return(dir);
         }
     }
 }
Esempio n. 3
0
        public PathVariant AddMove(Direction direction, int acceleration)
        {
            var result = new PathVariant();

            Moves.ForEach(result.Moves.Add);

            result.Speed      = Speed + acceleration;
            result.Direction  = direction;
            result.TotalTime += 1m / result.Speed;
            result.Point      = Point.AddDirection(direction);

            result.Moves.Add(new Move()
            {
                Direction = direction, Acceleration = acceleration, Point = result.Point
            });

            return(result);
        }