public static Coordinate FindNeighbour(Coordinate coord, Compass direction) { var x = coord.XCoord; var y = coord.YCoord; switch (direction) { case Compass.East: return(new Coordinate(x + 1, y)); case Compass.SouthEast: return(new Coordinate(x + 1, y - 1)); case Compass.South: return(new Coordinate(x, y - 1)); case Compass.SouthWest: return(new Coordinate(x - 1, y - 1)); case Compass.West: return(new Coordinate(x - 1, y)); case Compass.NorthWest: return(new Coordinate(x - 1, y + 1)); case Compass.North: return(new Coordinate(x, y + 1)); case Compass.NorthEast: return(new Coordinate(x + 1, y + 1)); } return(new Coordinate(x, y)); }
public static Compass GetOpposite(Compass direction) { switch (direction) { case Compass.East: return(Compass.West); case Compass.SouthEast: return(Compass.NorthWest); case Compass.South: return(Compass.North); case Compass.SouthWest: return(Compass.NorthEast); case Compass.West: return(Compass.East); case Compass.NorthWest: return(Compass.SouthEast); case Compass.North: return(Compass.South); case Compass.NorthEast: return(Compass.SouthWest); } return(Compass.West); }
public static bool AreOpposite(Compass dir1, Compass dir2) { return(GetOpposite(dir1) == dir2); }