コード例 #1
0
        public Maze CreateMaze(MazeFactory factory)
        {
            Maze maze = factory.MakeMaze();

            Room r1   = factory.MakeRoom(1);
            Room r2   = factory.MakeRoom(2);
            Door door = factory.MakeDoor(r1, r2);

            maze.AddRoom(r1);
            maze.AddRoom(r2);

            return(maze);
        }
コード例 #2
0
ファイル: MazeGame.cs プロジェクト: Helen1987/edu
 public Maze CreateMaze()
 {
     Maze maze = new Maze();
     Room r1 = new Room(1);
     Room r2 = new Room(2);
     Door theDoor = new Door(r1, r2);
     maze.AddRoom(r1);
     maze.AddRoom(r2);
     r1.SetSide(Direction.North, new Wall());
     r1.SetSide(Direction.East, theDoor);
     r1.SetSide(Direction.South, new Wall());
     r1.SetSide(Direction.West, new Wall());
     r2.SetSide(Direction.North, new Wall());
     r2.SetSide(Direction.East, new Wall());
     r2.SetSide(Direction.South, new Wall());
     r2.SetSide(Direction.West, theDoor);
     return maze;
 }
コード例 #3
0
        public virtual void CreateMaze(IMazeFactory factory)
        {
            maze = factory.CreateMaze();

            Room room1 = factory.CreateRoom1();
            Room room2 = factory.CreateRoom2();

            Portal portal1 = factory.CreatePortal(room1, new Vector3(0, 0, 2f));
            Portal portal2 = factory.CreatePortal(room2, new Vector3(2f, 0, 0));

            portal1.SetExit(portal2);
            portal2.SetExit(portal1);

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

            maze.Load();
        }
コード例 #4
0
 public virtual void BuildRoom(int n)
 {
     if (_currentMaze.RoomNo(n) != null)
     {
         Room room = new Room(n);
         _currentMaze.AddRoom(room);
         room.SetSide(Direction.North, new Wall());
         room.SetSide(Direction.South, new Wall());
         room.SetSide(Direction.East, new Wall());
         room.SetSide(Direction.West, new Wall());
     }
 }
コード例 #5
0
 public override void BuildRoom(int roomNumber)
 {
     if (_CurrentMaze.RoomNumber(roomNumber) != null)
     {
         Room room = new Room(roomNumber);
         _CurrentMaze.AddRoom(room);
         room.SetSide(Sides.East, new Wall());
         room.SetSide(Sides.North, new Wall());
         room.SetSide(Sides.South, new Wall());
         room.SetSide(Sides.West, new Wall());
     }
 }
コード例 #6
0
        public override void BuildRoom(int roomNo)
        {
            if (_currentMaze.RoomNo(roomNo) == null)
            {
                Room room = new Room(roomNo);
                _currentMaze.AddRoom(room);

                room.SetSide(Direction.North, new Wall());
                room.SetSide(Direction.South, new Wall());
                room.SetSide(Direction.East, new Wall());
                room.SetSide(Direction.West, new Wall());
            }
        }
コード例 #7
0
        public override void BuildRoom(int n)
        {
            if (_maze.RoomNo(n) != null)
            {
                var room = new Room(n);
                _maze.AddRoom(room);

                room.SetSide(DirectionEnum.North, new Wall());
                room.SetSide(DirectionEnum.South, new Wall());
                room.SetSide(DirectionEnum.East, new Wall());
                room.SetSide(DirectionEnum.West, new Wall());
            }
        }
コード例 #8
0
        public virtual Maze CreateMaze()
        {
            var maze = new Maze();

            Room rl      = MakeRoom(1);
            Room r2      = MakeRoom(2);
            Door theDoor = MakeDoor(rl, r2);

            maze.AddRoom(rl);
            maze.AddRoom(r2);

            rl.SetSide(DirectionEnum.North, MakeWall);
            rl.SetSide(DirectionEnum.East, theDoor);
            rl.SetSide(DirectionEnum.South, MakeWall);
            rl.SetSide(DirectionEnum.West, MakeWall);
            r2.SetSide(DirectionEnum.North, MakeWall);
            r2.SetSide(DirectionEnum.East, MakeWall);
            r2.SetSide(DirectionEnum.South, MakeWall);
            r2.SetSide(DirectionEnum.West, theDoor);

            return(maze);
        }
コード例 #9
0
        public Maze CreateMaze()
        {
            var firstRoom  = new Room(1);
            var secondRoom = new Room(2);
            var door       = new Door(firstRoom, secondRoom);

            firstRoom[Direction.North] = new Wall();
            firstRoom[Direction.East]  = door;
            firstRoom[Direction.South] = new Wall();
            firstRoom[Direction.West]  = new Wall();

            secondRoom[Direction.North] = new Wall();
            secondRoom[Direction.East]  = new Wall();
            secondRoom[Direction.South] = new Wall();
            secondRoom[Direction.West]  = door;

            var maze = new Maze();

            maze.AddRoom(firstRoom);
            maze.AddRoom(secondRoom);
            return(maze);
        }
コード例 #10
0
        public Maze CreateMaze()
        {
            var maze    = new Maze();
            var room1   = new Room(1);
            var room2   = new Room(2);
            var theDoor = new Door(room1, room2);

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

            room1.SetSide(Direction.North, new Wall());
            room1.SetSide(Direction.East, theDoor);
            room1.SetSide(Direction.South, new Wall());
            room1.SetSide(Direction.West, new Wall());

            room2.SetSide(Direction.North, new Wall());
            room2.SetSide(Direction.East, new Wall());
            room2.SetSide(Direction.South, new Wall());
            room2.SetSide(Direction.West, theDoor);

            return(maze);
        }
コード例 #11
0
        public static Maze CreateMaze()
        {
            var maze = new Maze();
            var r1   = new Room(1);
            var r2   = new Room(2);
            var door = new Door(r1, r2);

            maze.AddRoom(r1);
            maze.AddRoom(r2);

            r1[Directions.North] = new Wall();
            r1[Directions.East]  = door;
            r1[Directions.South] = new Wall();
            r1[Directions.West]  = new Wall();

            r2[Directions.North] = new Wall();
            r2[Directions.East]  = new Wall();
            r2[Directions.South] = new Wall();
            r2[Directions.West]  = door;

            return(maze);
        }
コード例 #12
0
        /// <summary>
        /// Create simple maze without patterns
        /// </summary>
        /// <returns></returns>
        public Maze CreateMazeSimple()
        {
            Maze aMaze   = new Maze();
            Room r1      = new Room(1);
            Room r2      = new Room(2);
            Door theDoor = new Door(r1, r2);

            aMaze.AddRoom(r1);
            aMaze.AddRoom(r2);

            r1.SetSide(Direction.North, new Wall());
            r1.SetSide(Direction.East, theDoor);
            r1.SetSide(Direction.South, new Wall());
            r1.SetSide(Direction.West, new Wall());

            r2.SetSide(Direction.North, new Wall());
            r2.SetSide(Direction.East, new Wall());
            r2.SetSide(Direction.South, new Wall());
            r2.SetSide(Direction.West, theDoor);

            return(aMaze);
        }
コード例 #13
0
        internal Maze CreateMaze(MazeFactory factory)
        {
            Maze aMaze   = factory.MakeMaze();
            Room r1      = factory.MakeRoom(1);
            Room r2      = factory.MakeRoom(2);
            Door theDoor = factory.MakeDoor(r1, r2);

            aMaze.AddRoom(r1);
            aMaze.AddRoom(r2);

            r1.SetSide(Direction.North, factory.MakeWall());
            r1.SetSide(Direction.East, theDoor);
            r1.SetSide(Direction.South, factory.MakeWall());
            r1.SetSide(Direction.West, factory.MakeWall());

            r2.SetSide(Direction.North, factory.MakeWall());
            r2.SetSide(Direction.East, factory.MakeWall());
            r2.SetSide(Direction.South, factory.MakeWall());
            r2.SetSide(Direction.West, theDoor);

            return(aMaze);
        }
コード例 #14
0
        public Maze CreateMaze(MazeFactory factory)
        {
            Maze aMaze = factory.MakeMaze();
            Room room1 = factory.MakeRoom(1);
            Room room2 = factory.MakeRoom(2);
            Door aDoor = factory.MakeDoor(room1, room2);

            aMaze.AddRoom(room1);
            aMaze.AddRoom(room2);

            room1.SetSide(Direction.North, factory.MakeWall());
            room1.SetSide(Direction.East, aDoor);
            room1.SetSide(Direction.South, factory.MakeWall());
            room1.SetSide(Direction.West, factory.MakeWall());

            room2.SetSide(Direction.North, factory.MakeWall());
            room2.SetSide(Direction.East, factory.MakeWall());
            room2.SetSide(Direction.South, factory.MakeWall());
            room2.SetSide(Direction.West, aDoor);

            return(aMaze);
        }
コード例 #15
0
        public Maze CreateMaze(MazeFactory mazeFactory)
        {
            Maze maze  = mazeFactory.MakeMaze();
            Room room1 = mazeFactory.MakeRoom(1);
            Room room2 = mazeFactory.MakeRoom(2);
            Door door  = mazeFactory.MakeDoor(room1, room2);

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

            room1.SetSide(Sides.North, mazeFactory.MakeWall());
            room1.SetSide(Sides.East, door);
            room1.SetSide(Sides.South, mazeFactory.MakeWall());
            room1.SetSide(Sides.West, mazeFactory.MakeWall());


            room2.SetSide(Sides.North, mazeFactory.MakeWall());
            room2.SetSide(Sides.East, mazeFactory.MakeWall());
            room2.SetSide(Sides.South, mazeFactory.MakeWall());
            room2.SetSide(Sides.West, door);
            return(maze);
        }
コード例 #16
0
        public Maze CreateMaze()
        {
            Maze aMaze = this.MakeMaze();
            Room room1 = this.MakeRoom(1);
            Room room2 = this.MakeRoom(2);
            Door aDoor = this.MakeDoor(room1, room2);

            aMaze.AddRoom(room1);
            aMaze.AddRoom(room2);

            room1.SetSide(Direction.North, this.MakeWall());
            room1.SetSide(Direction.East, aDoor);
            room1.SetSide(Direction.South, this.MakeWall());
            room1.SetSide(Direction.West, this.MakeWall());

            room2.SetSide(Direction.North, this.MakeWall());
            room2.SetSide(Direction.East, this.MakeWall());
            room2.SetSide(Direction.South, this.MakeWall());
            room2.SetSide(Direction.West, aDoor);

            return(aMaze);
        }
コード例 #17
0
        public Maze CreateMaze(MazeFactory mazeFactory)
        {
            Maze maze = mazeFactory.MakeMaze();
            Room r1   = mazeFactory.MakeRoom(1);
            Room r2   = mazeFactory.MakeRoom(2);
            Door door = mazeFactory.MakeDoor(r1, r2);

            maze.AddRoom(r1);
            maze.AddRoom(r2);

            r1.SetSide(Direction.North, new Wall());
            r1.SetSide(Direction.East, door);
            r1.SetSide(Direction.South, new Wall());
            r1.SetSide(Direction.West, new Wall());

            r2.SetSide(Direction.North, new Wall());
            r2.SetSide(Direction.East, new Wall());
            r2.SetSide(Direction.South, new Wall());
            r2.SetSide(Direction.West, door);

            return(maze);
        }
コード例 #18
0
        public Maze CreateMaze()
        {
            Maze maze = MakeMaze();

            Room r1   = MakeRoom(1);
            Room r2   = MakeRoom(2);
            Door door = MakeDoor(r1, r2);

            maze.AddRoom(r1);
            maze.AddRoom(r2);

            r1.SetSide(Direction.North, MakeWall());
            r1.SetSide(Direction.East, door);
            r1.SetSide(Direction.South, MakeWall());
            r1.SetSide(Direction.West, MakeWall());

            r2.SetSide(Direction.North, MakeWall());
            r2.SetSide(Direction.East, MakeWall());
            r2.SetSide(Direction.South, MakeWall());
            r2.SetSide(Direction.West, door);

            return(maze);
        }
コード例 #19
0
        public Maze CreateMazeFactoryMethod()
        {
            Maze aMaze = MakeMaze();

            Room r1      = MakeRoom(1);
            Room r2      = MakeRoom(2);
            Door theDoor = MakeDoor(r1, r2);

            aMaze.AddRoom(r1);
            aMaze.AddRoom(r2);

            r1.SetSide(Direction.North, MakeWall());
            r1.SetSide(Direction.East, theDoor);
            r1.SetSide(Direction.South, MakeWall());
            r1.SetSide(Direction.West, MakeWall());

            r2.SetSide(Direction.North, MakeWall());
            r2.SetSide(Direction.East, MakeWall());
            r2.SetSide(Direction.South, MakeWall());
            r2.SetSide(Direction.West, theDoor);

            return(aMaze);
        }
コード例 #20
0
        public Maze CreateMazePrototype(MazePrototypeFactory protoFactory)
        {
            Maze aMaze = protoFactory.MakeMaze();

            Room r1      = protoFactory.MakeRoom(1);
            Room r2      = protoFactory.MakeRoom(2);
            Door theDoor = protoFactory.MakeDoor(r1, r2);

            aMaze.AddRoom(r1);
            aMaze.AddRoom(r2);

            r1.SetSide(Direction.North, protoFactory.MakeWall());
            r1.SetSide(Direction.East, theDoor);
            r1.SetSide(Direction.South, protoFactory.MakeWall());
            r1.SetSide(Direction.West, protoFactory.MakeWall());

            r2.SetSide(Direction.North, protoFactory.MakeWall());
            r2.SetSide(Direction.East, protoFactory.MakeWall());
            r2.SetSide(Direction.South, protoFactory.MakeWall());
            r2.SetSide(Direction.West, theDoor);

            return(aMaze);
        }
            public override void BuildRoom(int roomNo)
            {
                Console.WriteLine($"BuildRoom {roomNo}");

                if (_currentMaze.RoomNo(roomNo) == null)
                {
                    var room = new Room(roomNo);
                    _currentMaze.AddRoom(room);
                    room.SetSide(Direction.North, new Wall());
                    room.SetSide(Direction.South, new Wall());
                    room.SetSide(Direction.East, new Wall());
                    room.SetSide(Direction.West, new Wall());
                }
            }
コード例 #22
0
        public override void BuildRoom(int number)
        {
            if (_currentMaze.GetRoom(number) != null)
            {
                return;
            }

            var room = new Room(number)
            {
                [Direction.North] = new Wall(),
                [Direction.East]  = new Wall(),
                [Direction.South] = new Wall(),
                [Direction.West]  = new Wall()
            };

            _currentMaze.AddRoom(room);
        }
コード例 #23
0
        public void BuildRoom(int number)
        {
            var room = new Room(number);

            switch (number)
            {
            case 1:
                room.SetSide(Direction.North, _factory.MakeWall());
                room.SetSide(Direction.East, _factory.MakeWall());
                room.SetSide(Direction.South, _factory.MakeWall());
                room.SetSide(Direction.West, _factory.MakeWall());
                break;

            case 2:
                room.SetSide(Direction.North, _factory.MakeWall());
                room.SetSide(Direction.East, _factory.MakeWall());
                room.SetSide(Direction.South, _factory.MakeWall());
                room.SetSide(Direction.West, _factory.MakeWall());
                break;
            }

            _maze.AddRoom(room);
        }