Розробка програмної моделі проходження лабіринтів



бет5/8
Дата02.01.2022
өлшемі215.73 Kb.
#454212
1   2   3   4   5   6   7   8
Курсовий проект Левковець Д О

Компоненти програми

Взагалі компонентів не так вже й багато: поле для лабіринту, стінки, позначка пройденого шляху, та сам шлях між стінками. На основі цього і можна побудувати класи, що є на рисунку 2.2.

Клас Maze – є головним класом, тому він і містить в собі віртуальну функцію Generate, а саме тому ми можемо його вважати абстрактним. Також цей клас має в собі дві рядкові зміні:



  • b – рядковий масив, що є як раз і полем нашого лабіринту.

  • t – рядкова зміна, що приймає значення “p”, для запиту, щодо перегляду проходження шляху.

Рисунок 2.1. – Загальний алгоритм роботи програми



Рисунок 2.2 – Діаграма класів

Клас Area є похідним класом від абстрактного Maze, та має доступ до приватних до приватних змінних, за допомогою protected. Він містить в собі цілочисловий масив для обрахунку стінок та шляху(с) у вигляді одиничок та двійок. Також змінні ширини (оо) та висоти (іі), які за допомогою функції Set, користувач вводить через клавіатуру. І вже цілочислові зміні, показників стінок (а), пустих місць (k) та пройденого шляху (c1).

А тепер пройдемося по функціям даного класу, їх всього чотири:



  • Set

  • Generate

  • Print

  • Passage

Як вже сказав до цього Set приймає значення висоти та ширини, які вводить користувач.

Generate – віртуальна функція від головного класу, який спочатку перевіряє введену ширину та висоту на непарність, та при помилці виводить помилку, щодо невірного вводу. Після цього використовуючи алгоритм Ейлера генеруємо лабіринт з стінками, та пустими місцями між стінками, тупики та вхід з виходом.

Print – не тяжко здогадатися, що ця функція саме і виводить нам згенерований лабіринт із усіма компонентами.

Passage – функція, яка спочатку питає у користувача, чи потрібно показати проходження лабіринту, чи ні. Та описується алгоритм за «Правилом руки», для пошуку виходу з нашого згенерованого лабіринту.





    1. Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет