Ejemplo n.º 1
0
        public Room BinaryTreeDungeon(int i)
        {
            Room room;

            if (i == 0)
            {
                room = new Room("RS", RoomType.STARTroom, 0);
            }
            else if (i == _numberOfRooms - 1)
            {
                room     = new Room("RE", RoomType.EXITroom, 0);
                ExitRoom = room;
            }
            else
            {
                room = new Room(IdFactory.GetRoomId(), RoomType.ORDINARYroom, RoomCap());
            }
            rooms.Add(room);

            int j = 2 * i + 1;
            int k = 2 * i + 2;

            if (j < _numberOfRooms)
            {
                room.Connect(BinaryTreeDungeon(j));
            }
            if (k < _numberOfRooms)
            {
                room.Connect(BinaryTreeDungeon(k));
            }

            return(room);
        }
Ejemplo n.º 2
0
        public void LinearDungeon()
        {
            startRoom = new Room("RS", RoomType.STARTroom, 0);
            exitRoom  = new Room("RE", RoomType.EXITroom, 0);
            rooms.Add(startRoom);
            Room prevRoom = startRoom;

            for (int i = 0; i < _numberOfRooms - 2; i++)
            {
                Room currRoom = new Room(IdFactory.GetRoomId(), RoomType.ORDINARYroom, RoomCap());
                rooms.Add(currRoom);
                currRoom.Connect(prevRoom);
                prevRoom = currRoom;
            }
            rooms.Add(exitRoom);
            prevRoom.Connect(exitRoom);
        }