예제 #1
0
        public static DirectionEnums Turn(DirectionEnums pos, TypeEnum type)
        {
            if (type == TypeEnum.Positive)
            {
                switch (pos)
                {
                case DirectionEnums.N:
                    return(DirectionEnums.W);

                case DirectionEnums.W:
                    return(DirectionEnums.S);

                case DirectionEnums.S:
                    return(DirectionEnums.E);

                case DirectionEnums.E:
                    return(DirectionEnums.N);

                default:
                    return(DirectionEnums.N);
                }
            }
            else if (type == TypeEnum.Negative)

            {
                switch (pos)
                {
                case DirectionEnums.N:
                    return(DirectionEnums.E);


                case DirectionEnums.E:
                    return(DirectionEnums.S);

                case DirectionEnums.S:
                    return(DirectionEnums.W);

                case DirectionEnums.W:
                    return(DirectionEnums.N);


                default:
                    return(DirectionEnums.N);
                }
            }
            else
            {
                return(DirectionEnums.N);
            }
        }
예제 #2
0
        public static List <int> Move(DirectionEnums pos, int x, int y)
        {
            if (pos == DirectionEnums.N)
            {
                y += 1;
            }
            else if (pos == DirectionEnums.E)
            {
                x += 1;
            }
            else if (pos == DirectionEnums.W)
            {
                x -= 1;
            }
            else if (pos == DirectionEnums.S)
            {
                y -= 1;
            }
            var list = new List <int>();

            list.Add(x);
            list.Add(y);
            return(list);
        }