Exemple #1
0
 public void SetWallOn(string value)
 {
     if (value == "L")
     {
         this.WallOn = WallOn.Left;
     }
     else
     {
         this.WallOn = WallOn.Right;
     }
 }
Exemple #2
0
        public static (int X, int Y, Face Face) Next(this Face face, WallOn wallOn, int x, int y)
        {
            switch (face)
            {
            default:
            case Face.Right:
                if (wallOn == WallOn.Left)
                {
                    return(x, y - 1, Face.Up);
                }
                else
                {
                    return(x, y + 1, Face.Down);
                }

            case Face.Left:
                if (wallOn == WallOn.Left)
                {
                    return(x, y + 1, Face.Down);
                }
                else
                {
                    return(x, y - 1, Face.Up);
                }

            case Face.Down:
                if (wallOn == WallOn.Left)
                {
                    return(x + 1, y, Face.Right);
                }
                else
                {
                    return(x - 1, y, Face.Left);
                }

            case Face.Up:
                if (wallOn == WallOn.Left)
                {
                    return(x - 1, y, Face.Left);
                }
                else
                {
                    return(x + 1, y, Face.Right);
                }
            }
        }
Exemple #3
0
        public static Face Rotate(this Face face, WallOn wallOn)
        {
            if (wallOn == WallOn.Left)
            {
                switch (face)
                {
                case Face.Down:
                    return(Face.Left);

                case Face.Left:
                    return(Face.Up);

                case Face.Up:
                    return(Face.Right);

                default:
                case Face.Right:
                    return(Face.Down);
                }
            }
            else
            {
                switch (face)
                {
                case Face.Down:
                    return(Face.Right);

                case Face.Left:
                    return(Face.Down);

                case Face.Up:
                    return(Face.Left);

                default:
                case Face.Right:
                    return(Face.Up);
                }
            }
        }