public void TrackTarget() { Direction dir = Direction.Directions[0]; if (this.TargetShip.CurrentPosition.X > this.CurrentPosition.X) { dir = Universal.GetRandomItem(Direction.Directions.Where(d => d.Id.Contains('E')).ToList()); } if (this.TargetShip.CurrentPosition.X < this.CurrentPosition.X) { dir = Universal.GetRandomItem(Direction.Directions.Where(d => d.Id.Contains('W')).ToList()); } if (this.TargetShip.CurrentPosition.Y > this.CurrentPosition.Y) { dir = Universal.GetRandomItem(Direction.Directions.Where(d => d.Id.Contains('N')).ToList()); } if (this.TargetShip.CurrentPosition.Y < this.CurrentPosition.Y) { dir = Universal.GetRandomItem(Direction.Directions.Where(d => d.Id.Contains('S')).ToList()); } if (this.TargetShip.CurrentPosition.X > this.CurrentPosition.X && this.TargetShip.CurrentPosition.Y > this.CurrentPosition.Y) { dir = Universal.GetRandomItem(Direction.Directions.Where(d => d.Id.Contains('E') && d.Id.Contains('N')).ToList()); } if (this.TargetShip.CurrentPosition.X > this.CurrentPosition.X && this.TargetShip.CurrentPosition.Y < this.CurrentPosition.Y) { dir = Universal.GetRandomItem(Direction.Directions.Where(d => d.Id.Contains('E') && d.Id.Contains('S')).ToList()); } if (this.TargetShip.CurrentPosition.X < this.CurrentPosition.X && this.TargetShip.CurrentPosition.Y > this.CurrentPosition.Y) { dir = Universal.GetRandomItem(Direction.Directions.Where(d => d.Id.Contains('W') && d.Id.Contains('N')).ToList()); } if (this.TargetShip.CurrentPosition.X < this.CurrentPosition.X && this.TargetShip.CurrentPosition.Y < this.CurrentPosition.Y) { dir = Universal.GetRandomItem(Direction.Directions.Where(d => d.Id.Contains('W') && d.Id.Contains('S')).ToList()); } this.ApplyMovement(dir); }
public Direction GetOppositeDirection() { List <Direction> oppositeDirections = Directions.Where(d => !d.Id.Any(id => this.Id.Contains(id))).ToList(); return(Universal.GetRandomItem(oppositeDirections)); }