Example #1
0
 private List<Direction> GetAdjacencies(bool cardinal)
 {
     //Are we getting adjacencies for cardinal or diagonal directions?
     List<int> directionIndexes = cardinal ?
         TileHelper.CardinalDirections().Select(direction => (int)direction).ToList() : 
         TileHelper.DiagonalDirections().Select(direction => (int)direction).ToList();
     //Loop through each index in direction indexes, pick those that exist and cast them to the Direction enum.
     return (from index in directionIndexes where connections[index].Exists select (Direction) index).ToList();
 }
Example #2
0
        /**
         * Get the direction of the only cardinal/diagonal non connection.
         * Assumes there is exactly one cardinal/diagonal non connection
         */
        public Direction GetSingleNonConnection(bool cardinal = true)
        {
            List<Direction> foundConnections = GetAdjacencies(cardinal);
            List<Direction> directions = cardinal ? TileHelper.CardinalDirections() : TileHelper.DiagonalDirections();
            List<Direction> missingConnections =
                directions.Where(direction => !foundConnections.Contains(direction)).ToList();

            return missingConnections[0];
        }