public override void BuildDoor(int room1No, int room2No, Direction direction)
        {
            Room room1 = this._maze.GetRoom(room1No);
            Room room2 = this._maze.GetRoom(room2No);

            Door door = new StandardDoor(room1, room2);

            room1.SetSide(direction, door);
            room1.SetSide(this.GetReverseDirection(direction), door);
        }
예제 #2
0
        // 迷宫组件的种类是硬编码的,无法变化
        public virtual Maze CreateMaze()
        {
            Maze maze = new StandardMaze();

            Room room1 = new StandardRoom(1);
            Room room2 = new StandardRoom(2);
            Door door  = new StandardDoor(room1, room2);

            maze.AddRoom(room1);
            maze.AddRoom(room2);

            room1.SetSide(Direction.North, new StandardWall());
            room1.SetSide(Direction.East, door);
            room1.SetSide(Direction.South, new StandardWall());
            room1.SetSide(Direction.West, new StandardWall());

            room2.SetSide(Direction.North, new StandardWall());
            room2.SetSide(Direction.East, new StandardWall());
            room2.SetSide(Direction.South, new StandardWall());
            room2.SetSide(Direction.West, door);

            return(maze);
        }