- •Перелік скорочень
- •1 Аналіз предеметної області та відомих реалізацій
- •Аналіз предметної області
- •Огляд відомих реалізацій
- •Постановка задачі на розробку програмного забезпечення
- •2 Проектування програмного модуля
- •2.1. Особливості ооп
- •2.2 Універсальна мова проектування uml
- •2.4 Розробка uml-діаграм класів
- •2.3 Розробка алгоритму програми
- •Програмна реалізація спроектованого модуля
- •3.1 Обґрунтування вибору мови та середовища програмування
- •3.2 Програмна реалізація основних модулів
- •3.3 Результати тестування додатку
- •Висновки
- •Список використаної літератури
- •Додатки додаток а
1 Аналіз предеметної області та відомих реалізацій
Аналіз предметної області
Гра «Сапер» – простий на перший погляд тест пам’яті та мислення, а також одна з найпопулярніших ігор Windows усіх часів. Мета гри: знаходити порожні клітинки та уникати мін.
Основне вікно гри являє собою плоске або об'ємне ігрове поле розділене на суміжні комірки (квадрати, шестикутники, куби і т. П.), Деякі з яких «заміновані»; кількість «замінованих» комірок відомо. Метою гри є відкриття всіх комірок, що не містять міни.
Гравець відкриває комірки, намагаючись не відкрити комірку з міною. Відкривши комірки з міною, він програє. Міни розставляються після першого ходу, тому програти на першому ж ходу неможливо. Якщо під відкритою коміркою міни немає, то в ній з'являється число, що показує, скільки комірок, які сусідні із щойно відкритою, «заміновано» (у кожному варіанті гри сусідство визначається по-своєму); використовуючи ці числа, гравець намагається розрахувати розташування мін, проте іноді навіть в середині і в кінці гри деякі комірки все ж доводиться відкривати навмання. Якщо під сусідніми комірками теж немає мін, то відкривається деяка «Не замінована» область до комірок, в яких є цифри. «Замінувавши» комірку гравець може помітити, щоб випадково не відкрити їх. Відкривши всі «Не заміновані» комірки, гравець виграє.
Гра «Сапер» має на вибір три стандартні дошки різних рівнів складності:
Початківець: 81 клітинка, 10 мін
Аматор: 256 клітинок, 40 мін
Експерт: 480 клітинок, 99 мін
Можна створити власну дошку, гра «Сапер» підтримує максимальний розмір дошки 720 клітинок та 668 мін.
Складність поля оцінюють за допомогою величини 3BV (Bechtel Board Benchmark Value). Ця величина чисельно дорівнює мінімальній кількості безпосередніх відкривань комірок (у стандартному варіанті «Сапера» відкриття осередків тільки лівою кнопкою миші, без використання прапорів і подвійних кліків), необхідному для відкриття всього поля. Слід зазначити, що ця величина відображає лише кількість певних дій в ідеальному випадку при певній манері гри, а зовсім не складність розстановки для конкретного гравця.
У більшості варіантів гри підраховується час вирішення головоломки, тому реєструються рекорди для стандартних рівнів складності гри. Для серйозних змагань використовуються версії гри, що фіксують час проходження з точністю до мілісекунд.
Результат сильно залежить від розташування мін. Теоретично при будь-яких ігрових параметрах є ймовірність проходження одним клацанням. Але практична реалізація генератора випадкових комбінацій не дозволяє отримати занадто просту розстановку на великих дошках. Тому результати на рівнях складності Intermediate і Expert добре відображають рівень гравця. В офіційних програмах встановлені обмежувачі для простих дощок по 3bv. В даний час вони складають 2 для рівня складності Beginner, 30 - Intermediate і 100 - Expert.
Огляд відомих реалізацій
На сьогоднішній час в Інтернеті у вільному доступі знаходиться велика кількість аналогів гри "Сапер", які можна встановити на комп'ютер, сматрфон, або грати онлайн.
XBomb є найпопулярнішою грою "Сапер" для Unix і Linux систем, з використанням X11 для користувацького інтерфейсу. Оригінальна версія була просто клоном Windows, Сапер зі стандартними трьома рівнями з 10, 40 і 99 мінами. Перший робочий варіант був завершений 1994-11-08. На початку 1995 року було додано трикутна і гексагональна сітки в гру. Ця версія 2.0 була готова в травні, але її не випустили до 1996 року. До версії з тих пір додали колір до номерів і можливість одночасного натискання лівою і правою кнопками миші. Рекорди містять 10 кращих результатів з датою для кожного рівня і сітки, і час визначаєтсья з точністю до мілісекунди.
Відмінності від версії Windows, в тому, що трюк з 1,5 натисненням не працює, F2 не використовується для запуску гри. Ви також повинні помітити всі міни, щоб виграти.
Рисунок 1.1 – Варіації головних вікон програми XBomb
Mine3d – трьохвимірна версія гри сапер. Розташована вона на веб-ресурсі. Для створення цього програмного продукту було використано технології glMatrix.js, tween.js та jQuery. Гра має 2 режими, класичний і можливістю відкидання позначених мін. Також є можливість задання розмірності поля.
Рисунок 1.2 – Вікно гри Mine3d у браузері
Найвідомішою і найпершою версією цієї гри є "Сапер" від Windows. У перших версіях цієї гри були тільки 3 розміри поля, міни генерувались перед початком гри, тому існувала можливість натиснути на міну одразу, була відсутня таблиця результатів. З новішими версіями покращувались функціональні можливості гри та її графічний інтерфейс.
Рисунок 1.3 – Вікно гри "Сапер" від Windows
