public void GetNeighboringLandingPositions(Coordinate coordinate) { AddNeighboringLandingPositions(coordinate); if (MatrixOperation.HasLeftNeighbor(coordinate)) { var leftCoordinate = MatrixOperation.GetLeftNeighborCoordinate(coordinate); AddNeighboringLandingPositions(leftCoordinate); } if (MatrixOperation.HasRightNeighbor(coordinate)) { var rightcoordinate = MatrixOperation.GetRightNeighborCoordinate(coordinate); AddNeighboringLandingPositions(rightcoordinate); } }
public void AddNeighboringLandingPositions(Coordinate coordinate) { Coordinates.Add(coordinate); if (MatrixOperation.HasTopNeighbor(coordinate)) { var topCoordinate = MatrixOperation.GetTopNeighborCoordinate(coordinate); Coordinates.Add(topCoordinate); } if (MatrixOperation.HasDownNeighbor(coordinate)) { var downCoordinate = MatrixOperation.GetDownNeighborCoordinate(coordinate); Coordinates.Add(downCoordinate); } }
public LandingOperation(LandingArea landingArea) { LandingArea = landingArea ?? throw new ArgumentNullException(nameof(landingArea)); MatrixOperation = new MatrixOperation(LandingArea.Matrix); Coordinates = new List <Coordinate>(); }