コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public static bool AreOpposite(Compass dir1, Compass dir2)
 {
     return(GetOpposite(dir1) == dir2);
 }