Exemplo n.º 1
0
        public MainWindow()
        {
            InitializeComponent();
            MazeGame game = new MazeGame();

            game.CreateMaze();
        }
        public MainWindow()
        {
            InitializeComponent();
            MazeGame    game    = new MazeGame();
            MazeFactory factory = new MazeFactory();

            game.CreateMaze(factory);
        }
        public MainWindow()
        {
            InitializeComponent();
            MazeBuilder builder = new StandartMazeBuilder();
            MazeGame    game    = new MazeGame();

            game.CreateMaze(builder);
        }
Exemplo n.º 4
0
        public MainWindow()
        {
            InitializeComponent();

            // Создаем генератор лабиринта.
            MazeGame game = new MazeGame();

            MazeFactory factory = new MazeFactory();
            //Конфигурируем фабрику базовыми элементами лабиринта
            MazePrototypeFactory simpleMazeFactory = new MazePrototypeFactory(new Maze(), new Wall(), new Room(2), new Door());

            // Создаем лабиринт из двух комнат используя фабричный метод - CreateMaze().
            Maze maze = game.CreateMaze(simpleMazeFactory);
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 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);
            }
        }