Главная страница
Навигация по странице:

  • 2.1 Аналіз вхідних та вихідних даних

  • 2.4 Опис фізичної структури програми

  • Курсова робота 121. !записка_Бачурський (3). 1 Постановка задачі Основна частина


    Скачать 0.88 Mb.
    Название1 Постановка задачі Основна частина
    АнкорКурсова робота 121
    Дата23.11.2022
    Размер0.88 Mb.
    Формат файлаdocx
    Имя файла!записка_Бачурський (3).docx
    ТипДокументы
    #808096
    страница1 из 2
      1   2





    ЗМІСТ

    с.

    Вступ

    1 Постановка задачі……………………………………………………………………...

    2 Основна частина…………………………………………………………..…………...

    2.1 Аналіз вхідних та вихідних даних………………………………………………...

    2.2 Опис логічної структури програми…………………………………..…………...

    2.3 Опис фізичної структури програми………………………………….…………...

    2.4 Інструкція користувача програми………………………………………………...

    2.5 Вимоги до складу та параметрів технічних та програмних засобів …………....

    2.6 Тестування програми……………………………………………………………....

    2.7 Результати реалізації програми…………………………………………………...

    Висновки по роботі…………………………………………...…………….…………...

    Перелік використаних джерел……………………………………………..…………...

    Додаток А…………………………………………………………………...…………...

    Додаток Б………………………………………………………………………………...
    ВСТУП
    Ігри являють собою важливу частину розвитку людини та її дозвілля. Логічні ігри-головоломки не тільки мотивують людину мислити абстрактно, але ще й сприяють покращенню пам’яті.

    Комп'ютерна гра - комп'ютерна програма, що служить для організації ігрового процесу (геймплея), зв'язку з партнерами по грі, або сама виступає як партнер.

    Історія комп'ютерних ігор починається у 1940-х та 1950-х роках, коли в академічному середовищі розроблялися прості ігри та симуляції. Комп'ютерні ігри тривалий час не були популярними, і лише в 1970-х і 1980-х роках, коли з'явилися для широкої публіки аркадні автомати, ігрові консолі та домашні комп'ютери, комп'ютерні ігри стають частиною поп-культури.

    Самооцінка прямо залежить від наших перемог і зльотів. Так ось, коли учасник переможе, йому стає приємно. А його самооцінка виростає. Було проведено дослідження, де з'ясувалося, що людина грає роль кращого героя, так веде себе і при контакті з людьми в реальному житті. Це підтвердили професора Трентського і Стендфордського університетів.

    Починаючи займатися будь-якою справою, кожній людині хочеться дізнатися як можна більше інформації про цю активність. Користь комп'ютерних ігор полягає в розширенні кругозору. Наприклад, гравців в "Танки" опитали і з'ясували, що вони стали більше проявляти інтерес до військової історії і будівництва танка. Через це вони почали відвідувати виставки і музеї пов'язані з цією тематикою.

    Заняття з репетитором дають фундамент розуміння мови. Однак, щоб почати в ньому орієнтуватися, потрібна практика, але її не так просто отримати. У той час як в іграх активно використовується англійський, у людей з'являється стимул його вчити, і в грі існує можливість практики.

    Темою курсової роботи є розробка та програмування користувацького інтерфейсу і логіки роботи гри «Battleships». Це одна з класичних головоломок. Головною задачею головоломки знаходження розташування бойових кораблів, захованих у сітці, кількість лінкорів кожного розміру вказана в легенді під сіткою. Для цього були використані засоби мови C#, а саме додаток Windows Presentation Foundation та фреймворк .Net


    1 ПОСТАНОВКА ЗАДАЧІ
    Призначення, мета створення системи і область застосування:

    - програма створюється для гри в Battleships на комп’ютерах з оперативною системою Windows

    Вимоги до програми.

    Вимоги до функціональних характеристик.

    Програма повинна забезпечувати можливість виконання перерахованих нижче функцій:

    - показувати користувачеві поле гри Battleships;

    - можливість грати в гру;

    - можливість змінювати налаштування програми;

    Вимоги до надійності.

    Для надійного використання програми комп’ютер користувача має відповідати технічним вимогам програми

    Методи рішення та мова програмування

    Початковий код програми має бути реалізований на мові С#. У якості інтегрованого середовища розробки програми має бути використане середовище Visual Studio 2019

    Вимоги до програмної документації.

    Програмна документація має містити інструкції щодо функцій програми та її логіки
    2 ОСНОВНА ЧАСТИНА
    2.1 Аналіз вхідних та вихідних даних

    Вхідні дані:

    - Вхідні дані програми організовані в виді окремих класів в основному коді програми

    - Дії користувача(додання кораблів , вибір та зміна налаштувань, тощо)

    Вихідні дані:

    - Повідомлення про успішність розв’язання головоломки

    - Правильний розв’язок головоломки

    2.2 Методи та засоби програмування
    Для розробки програмного забезпечення, відповідно індивідуального завдання, доцільно використати такі засоби реалізації:

    - мова програмування C#;

    - фреймворк .Net Framework версії 4.8;

    - технологія Windows Presentation Foundation (WPF);

    - мова розмітки XAML;

    - середовище розробки Microsoft Visual Studio 2019 та вище.

    - компонент Border

    - компонент Textbox

    2.2.1 Мовою програмування високого рівня було обрано C#, адже вона має багато бібліотек, що допомагають спростити процес налаштування застосунку, а також стандартизують архітектуру та стиль написання коду, що важливо для можливого розширення функціоналу іншими розробниками.

    Мова програмування C# - це об'єктно-орієнтована мова програмування з безпечною системою типізації на платформі .NET. C# було розроблено Андерсом Гейлсбергом, Скотом Вілтамутом та Пітером Гольде під егідою центру Microsoft Research.

    Мова C# розроблялась як мова програмування прикладного рівня для CLR і через це вона залежить, більше всього, від можливостей безпосередньо CLR. Наявність та відсутність деяких особливостей мови програмування обумовлено тим, чи може обрана особливість мови бути трансльована у відповідні конструкції CLR. CLR надає C#, як і всім іншим .NET-орієнтованим мовам, багато можливостей, яких не мають класичні мови програмування. Наприклад, збірку сміття не було реалізовано в самому C#, вона працює завдяки CLR для програм, розроблених на C#.

    2.2.2 Фреймворк .Net Framework

    Для створення архітектури систем використовують сучасні бібліотеки, чи фреймворки, які спрощують процес написання коду.

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

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

    Фреймворк .Net Framework 4.6.1 – кросплатформова технологія, запропонована фірмою Microsoft як платформа для створення звичайних програм та веб-застосунків. Багато в чому технологія являє собою продовження ідей та принципів, закладених ще при розробці технології Java. Однією з головних ідей, покладених в розробку .NET, є сумісність служб, що були написані різними мовами програмування.

    Однією з основних ідей Microsoft .NET є сумісність різних служб, написаних на різних мовах. Наприклад, служба, написана на C ++ для Microsoft .NET, може звернутися до методу класу з бібліотеки, написаної на Delphi; на C# можна написати клас, успадкований від класу, написаного на Visual Basic .NET, а виключення, створене методом, написаним на C#, може бути перехоплено і оброблено в Delphi. На рисунку 1.1 представлено графічний огляд технології .NET.

    Технологія .NET є патентованою технологією корпорації Microsoft. Проте, після укладення домовленості з компанією Novell, технологія Mono була визнана як реалізація .NET на Unix-подібних системах. Mono надає реалізацію ASP.NET, ADO.NET і Windows.Forms, але в той же час рекомендує обходити ці API.

    2.2.3 Система Windows Presentation Foundation

    Windows Presentation Foundation- графічна підсистема Microsoft для розробки користувацького інтерфейсу програмних додатків. Технологія має пряме відношення до XAML. WPF разом з .NET Framework 3.0 вбудовано в Windows Vista, також система доступна для установки в Windows.

    Це перше оновлення технологічного середовища, що призначене для користувачів інтерфейсу з моменту випуску Windows 95. Воно включає в себе нове ядро для заміни GDI і GDI+, що активно використовувались в Windows Forms. WPF є високорівневим об'єктно-орієнтованим функціональним шаром, що дозволяє створювати двовимірні та тривимірні інтерфейси.



    Рисунок 2.1 - Огляд технології .NET

    В основу WPF закладено векторну систему візуалізації, що не залежить від розширення пристрою виведення. Вона була створена з урахуванням можливостей сучасного графічного обладнання. WPF дає засоби для створення візуального інтерфейсу, включаючи мову XAML, елементи управління, прив'язку даних, макети, двомірну і тривимірну графіку, анімацію, стилі, шаблони, документи, текст, мультимедію і оформлення.

    2.2.4 Мова розмітки XAML

    Мова extensible Application Markup Language є декларативною мовою розмітки. Мова XAML спрощує створення користувацького інтерфейсу для програм для .NET Framework. У розробника є можливість створити елементи інтерфейсу користувача в декларативній розмітці XAML, а потім відокремити визначення користувача інтерфейсу від логіки часу виконання, завдяки використанню файлів коду програмної частини, приєднаних до розмітки за допомогою визначень поділюваних класів. Мова XAML представляє створення екземплярів об'єктів в конкретному наборі резервних типів, що було визначено у збірках. Це і є її відмінністю від більшості інших мов розмітки, які зазвичай, є інтерпретованими мовами без прямого зв'язку з системою резервних типів. Мова XAML надає робочий процес, що дозволяє декільком учасникам розробляти користувацький інтерфейс і логіку програми, при цьому використовуючи потенційно різні засоби.

    2.2.5 Середовище розробки Microsoft Visual Studio 2019

    Середовище розробки Microsoft Visual Studio - це лінійка програмних продуктів фірми Майкрософт, що спеціалізуються на розробці інтегрованого середовища розробки програмного забезпечення. Продукти компанії надають змогу розробляти консольні програми, програми з графічним інтерфейсом, в тому числі з підтримкою технології Windows Forms, веб-сайти, веб-застосунки та веб-служби для всіх платформ, що підтримуються компанією. Visual Studio містить редактор вихідного коду з вбудованою технологією IntelliSense, що дуже спрощує процес написання коду, і можливістю швидкого рефакторінга коду без втрати часу. Вбудований відладчик працює одночасно і як відладчик рівня вихідного коду, і як відладчик машинного рівня комп'ютера. Інші інструменти включають в себе редактор форм для поліпшення роботи програміста при розробці графічного інтерфейсу, веб-редактор для інтернет ресурсів, дизайнер класів і дизайнер схеми бази даних.

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

    Сімейство інструментів Visual Studio 2019 містить IDE, сервіс для організації спільної роботи - Visual Studio Team Services, комплексне рішення для реалізації повноцінного циклу розробки мобільних додатків - Visual Studio Mobile Center, мультиплатформенний редактор коду Visual Studio Code, доступний для Mac, Linux і Windows, а також пробна-версія Visual Studio for Mac.

    2.2.5 Елемент Border - це елемент-декоратор, який можна використовувати для малювання кордону, фону або одразу навколо іншого елемента. Оскільки WPF панелі не підтримують малювання рамок навколо своїх кордонів, елемент Border може допомогти вам зробити це просто поміщаючи панель всередину елемента Border.

    2.2.6 Клас TextBox дозволяє відображати та редагувати текст без форматування. Найчастіше TextBox використовується для редагування тексту без форматування у формі. Наприклад, форма, яка запитує ім'я користувача, номер телефону і т. д., використовуватиме елементи керування TextBox для введення тексту. У цьому розділі наведено відомості про клас TextBox і наведено приклади його використання як у XAML, так і на C#.
    2.3 Опис логічної структури програми
    Алгоритм комп'ютерної гри складається у визначені виграшу, а саме:

    - гравець має можливість заповнювати ігрове поле кораблями;

    - заповнивши поле гравець перевіряє правильність свого розв'язання головоломки;

    - якщо головоломка розв'язана правильно – гравець отримує повідомлення про це та можливість перепройти рівень;

    - якщо головоломка розв'язана не правильно – гравець отримає про це повідомлення та продовжує грати;

    На початку гри програма зчитує з класу розмір ігрового поля, генерується ігрове поле. Гра починається відразу після запуску ігрового таймера. Користувачеві буде показане ігрове поле, з яким він зможе взаємодіяти. В будь-який момент користувач може перевірити чи правильно він розв’язав головоломку. Результат перевірки буде показаний користувачеві в інтерфейсі програми. В разі неправильного виконання головоломки гра продовжиться. Якщо користувач правильно заповнив поле Battleships – гра зупиниться, привітав гравця з успіхом. Якщо користувач захоче пройти уровень знову, таймер почне працювати з початку.

    Зроблену мною блок-схему можна поділити на три етапи: перший – поведінка програми, до того, як користувач почне грати; другий – розрахунки чи правильно користувач заповнив головоломку та дії відносно цього; третій – поведінка програми при успішному вирішинні головоломки.

    На рисунку 2.2 наведена діаграма прикладу ігрового процесу.



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

    2.4 Опис фізичної структури програми
    За результати логічного проєктування (UML діаграми) застосунку генерування UML-діаграми класів CLR-збірки та обраним середовищем розробки (MS Visual Studio 2019) розробляємо програмний проєкт застосунку у редакторі MS Visual Studio 2019, за допомогою шаблону налаштувань проєкту типу - WPF App (.NET).

    Програмний проєкт складається з залежних файлів типу .XAML та .CS. Зміст файлів проєкту застосунку наведено на рисунку 2.1.

    Логіка архітектури проєкту застосунку передбачає розробку:

    - структурованого збереження та обробки графічного представлення блоків класів та ліній між ними, методів обробників подій компонентів форми вікна застосунку, опис яких визначений у файлу: MainWindow.xaml.cs

    Представлені на UML діаграми класів (див.рис. 2.4, 2.5)



    Рисунок 2.3 – Оглядач рішення проєкту застосунку



    Рисунок 2.4 - UML діаграма класів проекту застосунку (частина 1)



    Рисунок 2.5 - UML діаграма класів проекту застосунку (частина 2)

    Графічний інтерфейс застосунку представлений однією головною формою. Ескіз головної форми застосунку представлений на рисунку 2.6.



    Рисунок 2.6 – Ескіз форми застосунку

    Графічний інтерфейс головної форми (див.рис.2.3) складається з стандартних візуальних компонентів. Перелік застосованих компонентів наведений у таблиці 2.1.

    Таблиця 2.1 – Компоненти головної форми застосунку

    Тип компоненту

    Ім’я компоненту

    Призначення компоненту

    Події та метод обробки

    Дія

    Canvas

    Window

    Поле, що містить усі інші компоненти форми

    -

    -

    Сanvas

    GameField

    Поле, що містить усі кружки та лінії, що їх з’єднують, ігрове поле

    -

    -

    Canvas

    SettingsWrapper

    Поле що містить в собі всі налаштування програми

    -

    -

    CheckBox

    pinToolbar

    Перемикає налаштування “pin toolbar”

    Click="CheckBox_Click"

    Перемикає налаштування “pin toolbar” при натисненні лівої кнопки миші

    Button

    SaveButton

    Збереження гри

    Click="HandleSaveCheckpoint"

    Збереження гри при натисненні лівої кнопки миші

    Button

    LoadButton

    Завантаження гри

    Click="HandleLoadCheckpoint"

    Завантаження гри при натисненні лівої кнопки миші

    ComboBox

    autoSubmit

    Перевірка відповіді

    CheckBox_Click

    Автоматично завершує гру, якщо виконані умови

    night mode

    Темна тема

    CheckBox_Click

    Вмикає темну тему

    hide timer

    Сховати таймер

    CheckBox_Click

    Ховає таймер

    last change

    Остання зміна

    CheckBox_Click

    Виділяє червоним останню зміну

    show errors

    Показати помилки

    CheckBox_Click

    Показує помилки

    show complited

    Показати завершені числа

    CheckBox_Click

    Виділяє сірим завершені числа

    show water

    Відображення води

    CheckBox_Click

    Відображає воду в міцях, де не можна поставити кораблі

    Змінні та методи програми наведені у таблиці 2.2.

    Таблиця 2.2 - Початок таблиці Змінні та методи програми

    Заголовок, опис результату методу

    Роль змінної

    Тип

    Позначення

    Опис

    void Button_Click()

    Параметр

    object

    sender

    Компонент який визвав подію

    RoutedEventArgs

    e

    Інформація про стан та дані події

    Змінна

    Button

    currentButton

    Поточна кнопка

    string

    tag

    Тег поточної кнопки

    string

    name

    Ім’я поточної кнопки

    char[]

    cords

    Значення границь для комірки

    bool CheckAnswers()

    Параметр

    void

    -

    -

    void CheckBox_Click()

    Параметр

    object

    sender

    Компонент який визвав подію

    RoutedEventArgs

    e

    Інформація про стан та дані події

    Змінна

    Checkbox

    tag

    Тег поточного чекбокса

    void kletka_click()

    Параметр

    object

    sender

    Компонент який визвав подію

    RoutedEventArgs

    e

    Інформація про стан та дані події

    Змінна

    Button

    sender

    Поточна кнопка

    Змінна

    string

    tag

    Поточний тег

    Змінна

    string

    name

    Поточне ім’я

    kletka_right_click()

    Параметр

    object

    sender

    Компонент який визвав подію

    RoutedEventArgs

    e

    Інформація про стан та дані події

    Змінна

    string

    tag

    Поточний тег

    Змінна

    string

    name

    Поточне ім’я

    Таблиця 2.2 - таблиця Змінні та методи програми

    void restart_click()

    Параметр

    object

    sender

    Компонент який визвав подію

    RoutedEventArgs

    e

    Інформація про стан та дані події

    Змінна

    string

    formattedTime

    Ім’я поточного часу

    void checkSelectedShips()

    Змінна

    bool

    bigShip

    Інформація про знаходження великого корабля

    bool

    mediumShip1

    Інформація про знаходження середнього корабля

    bool

    smallShip1

    Інформація про знаходження маленького корабля

    int

    bigShips

    Лічильник знайдених кораблів

    void draw


    Змінна

    int

    i

    Індекс двумірного масиву

    int

    j

    Індекс двумірного масиву

    Int[]

    xCordsCur

    Координати поля по x

    Int[]

    yCordsCur

    Координати поля по y

    void save()

    Параметр

    object

    sender

    Компонент який визвав подію

    RoutedEventArgs

    e

    Інформація про стан та дані події

    Таблиця 2.2 – кінець таблиці Змінні та методи програми

    void load()

    Параметр

    object

    sender

    Компонент який визвав подію

    RoutedEventArgs

    e

    Інформація про стан та дані події

    int

    j

    Координата клітинки по осі Х

    string

    type

    Положення нажатої кнопки відносно клітинки

    Border

    border

    Межа для перевірки

    Змінна

    bool

    isError

    Чи правильно межа

    У головній функції оголошуємо локальні зміні:

    - static int gridSize – розмір ігрового поля

    - int cellGap – відстань від комірками

    - public int cellSize – розмір клітинки

    - int startX – початкова координата для генерації ігрового поля по осі Х

    - int startY - початкова координата для генерації ігрового поля по осі Y

    - CellItem[,] cellList – масив з відповідями користувача

    - public string[,] circleList – масив для ініціалізації ігрового поля

    - string[,] answers – відповіді на поточне ігрове поле

    - DispatcherTimer timer – об’єкт класу DispatcherTimer

    - public int secondsPlayed – кількість секунд які пройшли за початку гри

    - Settings settings – об’єкт класу Settings
      1   2


    написать администратору сайта