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); }
// 迷宫组件的种类是硬编码的,无法变化 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); }