Exemple #1
0
 // Добавление стороны.
 public void SetSide(Direction direction, MapSite mapSide)
 {
     // Если Дверь, то вставить ее на место стены. (логика билдера - значит стены уже построены)
     if (mapSide is Door)
     {
         this.sides[direction] = mapSide;
     }
     else
     {
         // Если Стена то просто добавлять, значит идет построение комнаты,
         // а комната изначально строится только из стен только потом идет замена стены на дверь.
         this.sides.Add(direction, mapSide);
     }
 }
Exemple #2
0
 // Добавление стороны.
 public void SetSide(Direction direction, MapSite mapSide)
 {
     // РЕАЛИЗАЦИЯ ДЛЯ ВЕРСИИ ПРОТОТИПА.
     // Если Дверь, то вставить ее на место стены. (логика билдера - значит стены уже построены)
     //if (mapSide is Door)
     //{
     //    this.sides[direction] = mapSide;
     //}
     //else
     {
         // Если Стена то просто добавлять, значит идет построение комнаты,
         // а комната изначально строится только из стен только потом идет замена стены на дверь.
         this.sides.Add(direction, mapSide);    // РЕАЛИЗАЦИЯ ДЛЯ СИНГЛТОНА И ПРЕДЫДУЩИХ ВЕРСИЙ.
     }
 }
Exemple #3
0
 public void SetSide(Direction direction, MapSite mapSide)
 {
     sides[direction] = mapSide;
     //sides.Add(direction, mapSide);
     Console.WriteLine(Convert.ToString(direction));
 }
        static void Main()
        {
            // Создаем генератор лабиринта.
            MazeGame game = new MazeGame();

            Room room1 = new Room(1);
            Room room2 = new Room(2);

            // MazeFactory - SINGLETON.
            MazeFactory mazeFactory = MazeFactory.Instance();

            // Создаем лабиринт из двух комнат используя фабричный метод - CreateMaze().
            Maze maze = game.CreateMaze(mazeFactory);

            // Генератор псевдослучайных последовательностей.
            Random random = new Random();

            // Попадаем в лабиринт, выбирая комнату случайным образом.
            Room room = maze.RoomNo(random.Next(1, 3));

            // Выбранная сторона.
            MapSite site = null;


            // ИГРОВАЯ ПЕТЛЯ.

            // Начинаем идти по лабиринту.
            while (true)
            {
                // Случайным образом выбираем новую сторону.
                switch (random.Next(0, 5))
                {
                // Выбираем направление куда будем идти (получаем ссылку на сторону).
                case 0:
                    site = room.GetSide(Direction.North);
                    break;

                case 1:
                    site = room.GetSide(Direction.South);
                    break;

                case 2:
                    site = room.GetSide(Direction.East);
                    break;

                case 3:
                    site = room.GetSide(Direction.West);
                    break;
                }

                // Отображаем номер комнаты в которой сейчас находимся.
                Console.Write("Я в комнате {0}. Делаю шаг. - ", room.RoomNumber);

                // Делаем шаг в выбранную сторону. (Визуальное отображение стороны на экране)
                site.Enter();

                if (site is Door) // Если дверь, то перейти в другую комнату.
                {
                    Door door = (Door)site;
                    // Переход в другую комнату (Получение ссылки на новую комнату).
                    room = door.OtherSideFrom(room);
                }

                // Иначе стена. Тогда опять ищем другое направление в той-же комнате.

                // Задержка между шагами.
                Thread.Sleep(800);
            }
        }
Exemple #5
0
 public void SetSide(Direction direction, MapSite mapSide)
 {
     this.sides.Add(direction, mapSide);
 }
Exemple #6
0
        static void Main()
        {
            // Генератор лабиринта.
            MazeGame mazeGame = new MazeGame();

            // Создается лабиринт из двух комнат используя фабричный метод - CreateMaze().
            Maze maze = mazeGame.CreateMaze();

            // Генератор псевдослучайных последовательностей.
            Random random = new Random();

            // Ввод имнимого игрока в лабиринт (комната выбирается случайным образом).
            Room room = maze.RoomNo(random.Next(1, 3));

            // Выбранная сторона.
            MapSite site = null;


            // ИГРОВАЯ ПЕТЛЯ.

            // Начало прохождения лабиринта.
            while (true)
            {
                // Выбор новой стороны случайным образом.
                switch (random.Next(0, 4))
                {
                // Выбор стороны направления (получаем ссылку на сторону).
                case 0:
                    site = room.GetSide(Direction.North);
                    break;

                case 1:
                    site = room.GetSide(Direction.South);
                    break;

                case 2:
                    site = room.GetSide(Direction.East);
                    break;

                case 3:
                    site = room.GetSide(Direction.West);
                    break;
                }

                // Отображение номера комнаты в которой сейчас находится мнимый игрок.
                Console.Write("Я в комнате {0}. Делаю шаг. - ", room.RoomNumber);

                // Попытка следать шаг в выбранную сторону (Визуальное отображение стороны на экране).
                site.Enter();

                if (site is Door) // Если дверь, то перейти в другую комнату.
                {
                    Door door = (Door)site;
                    // Переход в другую комнату (Получение ссылки на новую комнату).
                    room = door.OtherSideFrom(room);
                }

                // Иначе стена. Тогда продолжается поиск другого направления в той-же комнате.

                // Задержка между шагами.
                Thread.Sleep(800);
            }
        }