Автор работы: Пользователь скрыл имя, 13 Апреля 2014 в 02:42, реферат
Робота присвячена розробці нескладної комп’ютерної гри. Таким чином, повинна бути обрана мова програмування, що є зручною для виконання та інші технічні засоби, що будуть враховані при розробці.
В даній курсовій роботі автор ставить перед собою наступні задачі:
1. Розробити інтерфейс Меню, в якому можна передивлятись дані розробника та гру.
2. В програмі повинні бути різні режими гри та різна складність.
3. Повинна бути присутня можливість збереження результатів та їх вивід на екран при наступному запуску програми.
4. Програма повинна бути зручною для користувача та нескладною для використання.
Випущений на умовах Eclipse Public License, Eclipse є вільним програмним забезпеченням. Він став одним з перших IDE під GNU Classpath і без проблем Eclipse являє собою фреймворк для розробки модульних кросс-платформових за стосунків.
Eclipse насамперед повноцінна Java IDE, націлена на групову розробку, має засоби роботи з системами контролю версій (підтримка CVS входить у поставку Eclipse, активно розвиваються кілька варіантів SVN модулів, існує підтримка VSS та інших). З огляду на безкоштовність, у багатьох організаціях Eclipse — корпоративний стандарт для розробки ПЗ на Java.
Для середовища Eclipse існує цілий ряд вільних і комерційних модулів. Спочатку середовище було розроблене для мови Java, але в нині існують численні розширення для підтримки інших мов, як наприклад
Існують також модулі для створення графічних інтерфейсів.[2]
4.2 Аналіз результатів
В даній курсовій роботі була виконана розробка програми, що представляє собою гру «Хрестики-Нулики», яка написана на мові програмування C++ з використанням об’єктно-орієнтованого програмування.
Демонстрація та аналіз програми:
1) Виклик і завантаження програми
Щоб запустити дану гру потрібно відкрити каталог з грою та запустити файл «Курсова.exe», що знаходиться у каталозі «Курсова». При запуску программа завантажується в оперативну пам’ять. Після запуску перед користувачем з’явиться вікно гри, представлене викликом у командній стрічці та полем інтерфейсу.
Рис. 4.1 – Вікно гри.
2. Інструкція для користувача
Виклик гри відбувається шляхом запуску файлу Курсова.exe. При цьому на екрані з’являється вікно готове до початку гри
Рис. 4.2 – Поле для гри
3. Правила гри.
Гра заключається в тому що потрібно спочатку виставляти палички в сітці та не дати створити зображення квадратика виділеного чорним противнику. Такий як зображено на малюнку 4.3:
Рис. 4.3 – Початок гри
Виграє той хто займе більше клітинок та буде встановлено більше символів (Хрестиків або Нуликів). Після закінчення гра виводить таке повідомлення з переможцем в даному випадку це нулик:
Рис. 4.4 - Перемога
4) Справка
Натиснувши кнопку «Справка», можна побачити невелику інформацію про програму.
Рис. 4.5 – Інформація про розробника
5) У програмі можливі два режими роботи: дуель, де можна грати з іншим користувачем, та гра з комп’ютером, звичайний режим автоматичної гри з штучним інтелектом.
Рис. 4.6 – Режим гри
6) Програма передбачає зміну параметрів; щоб ускладнити її, розширивши поле гри, можна змінити розмір поля.
Рис. 4.7 – Параметри гри
ВИСНОВКИ
В курсовій роботі було розроблено гру «Хрестики-Нулики» за допомогою мови програмування С++; були освоєні і закріплені навики об'єктно-орієнтованого програмування.
У першому розділі даної курсової роботи була поставлена задача роботи та спланована розробка програми на певній мові програмування.
У другому розділі було розроблено та спроектовано інтерфейс системи.
У третьому розділі було проведено аналіз та спроектовано програмну систему. Для цього було побудовано побудована UML-діаграму, що відображала принцип роботи системи.
У четвертому розділі було проведено аналіз результатів програми та обумовленість використання у розробці мови програмування С++. Після цього було розроблено і протестовано програму.
Отже, враховуючи аналіз предметної області і проект програми, можливо зробити висновок, що гра була розроблена для широкого кругу користувачів, не вимагає підготовки і додаткових знань, тренує увагу. Все це робить гру привабливою для користувачів.
Гідність гри полягає в тому, що вона не займає багато місця і не вимагає багато оперативної пам'яті. Програмний продукт досить простий у використанні і не потребує встановлення додаткових програм. Програма є простою для користувача з простим у використанні інтерфейсом. Вона може неодноразово модифікуватися для покращення процесу гри за допомогою введення нових параметрів.
ПЕРЕЛІК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
ДОДАТОК А
ІНСТРУКЦІЯ КОРИСТУВАЧА
Для кожного користувача дана програма буде вже інстальована. Йому залишається лише розумітися на її параметрах.
1.При запуску програми одразу можна починати нову гру – автоматично будуть встановлені стандартні параметри нової гри.
2.Натиснувши на «Гра» => «Нова гра» можна розпочати нову гру.
3. Параметр «Гра» => «Перший хрестик» означає, що першим буде ходити користувач, що обрав для себе хрестик як хід. За замовчанням, їм користується комп’ютер.
4. Щоб змінити розмір вікна потрібно натиснути «Гра» => «Параметри поля» та обрати потрібний розмір поля, тим самим ускладнюючи програму.
5. Натиснувши «Гра» => «Вихід» можна вийти з гри.
6. «Справка» => «Довідка про програму» містить інформацію про автора.
ДОДАТОК Б
Міністерство освіти та науки, молоді та спорту України
Вінницький національний технічний університет
Інститут інформаційних технологій та комп’ютерної інженерії
ЗАТВЕРДЖУЮ
Зав. каф. КН, д.т.н., проф.
__________ Перевозніков С.І.
«__» _____________ 2012 р.
ТЕХНІЧНЕ ЗАВДАННЯ
На розробку програмної системи оплат роботи працівників круїзного лайнера:
Назва курсової роботи – «Проектування і реалізація комп’ютерної гри «Хрестики-Нулики» з використанням принципів об’єктно-орієнтованого програмування ».
Завдання на курсове проектування, протокол засідання кафедри КН №10 від 17.02.2012р.
Метою даної розробки є підвищення знань із об’єктно-орієнтованого програмування.
4. Вимоги до програмного забезпечення
4.1 Вимоги до функціональних характеристик:
- Зручний інтерфейс;
- Стійкість до помилок;
-Простота до використання;
4.2 Вимоги до програмного середовища
- Висока швидкодія;
- Відкритість та доступність програмного коду;
- Низькі апаратні та програмні вимоги;
- Безпека та відмовостійкість програмних продуктів.
Для розробки програмного забезпечення обрана мова програмування високого рівня С++. Завдяки об’єктно-орієнтованому підходу, безпечності щодо типізації, простоті реалізації програмних рішень та широким можливостям щодо керованості коду ця мова є найбільш підходящою та доцільною для розробки.
5. Вимоги до технічного забезпече
Для нормального функціонування програми необхідно наступне апаратне забезпечення:
ДОДАТОК В – UML діаграма
ДОДАТОК Г – Лістинг програми
#include <iostream>
#include <fstream>
#include <iomanip>
#include <new>
#include <cstdio>
#include <cstring>
#include <cctype>
#include <windows.h>
#include <windowsx.h>
#include "Classes.h"
using namespace std;
/* Прототип функції головного вікна */
LRESULT CALLBACK MainWinFunc(HWND, UINT, WPARAM, LPARAM);
/* Прототип функції вікна параметрів */
LRESULT CALLBACK ParamWinFunc(HWND, UINT, WPARAM, LPARAM);
char *MainWinName = "MainWindow"; // Ім’я класу головного вікна
char *ParamWinName = "ParamWindow"; // Ім’я класу вікна параметрів
HINSTANCE hTI; /* Дескриптор текущего вікна
HWND GameStatus;
HWND GameRunner;
menu m; // Об’єкт меню
window w; // Об’єкт вікна
player pl; // Об’єкт гравців
gameboard gb; // Об'єкт ігрового поля
statusbar sb; // Об'єкт стрічки стану
int WINAPI WinMain(
HINSTANCE hThisInstance, // Дескриптор текущего вікна
HINSTANCE hPrevInstance, // Дескриптор попереднього вікна
LPSTR lpszArgument, // Командна стрічка
int nWinMode) // Значення відображення вікна
{
MSG msg; // Повідомлення вікна
WNDCLASSEX Field; // Клас вікна
hTI = hThisInstance;
/* Визначення класу вікна */
wcl.cbSize = sizeof(Field); // Розмір пам'яті класу вікна
wcl.hInstance = hThisField; // Дескриптор вікна
wcl.lpszClassName = MainFieldName; // Ім'я класу вікна
wcl.lpfnWndProc = MainFielsFunc; // Функція вікна
wcl.style = CS_BYTEALIGNCLIENT; // Стиль класу вікна (по замовчуванню)
/* Піктограма вікна (стандартне положення) */
wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcl.hIconSm = NULL;
/* Курсор миши в вікні (стандартна стрілка) */
wcl.hCursor = LoadCursor(NULL, IDC_ARROW);
wcl.lpszMenuName = NULL; //Ім’я головного меню
/* Додаткова пам’ять (не потребується) */
wcl.cbClsExtra = 0;
wcl.cbWndExtra = 0;
/* Цвет фона окна */
wcl.hbrBackground = CreateSolidBrush(RGB(255, 255, 255));
/* Реєстрація класу головного вікна */
if(!RegisterClassEx(&wcl)) {
MessageBox(NULL,
"Помилка при реєстрації головного вікна",
"Error!",
MB_OK | MB_ICONHAND);
return 0;
}
/* Реєстрація класу вікна параметрів */
wcl.lpszClassName = ParamWinName;
wcl.lpfnWndProc = ParamWinFunc;
wcl.hbrBackground = CreateSolidBrush(GetSysColor(
if(!RegisterClassEx(&wcl)) {
MoveResult(NULL,
"Помилка при реєстрування вікна операції",
"Error!",
MB_OK | MB_ICONHAND);
return 0;
}
/* Створення вікна */
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE, // Робить вікно ввігнутим
MainWinName, // Ім’я класу вікна
"Журавська Ю.О.", // Заголовок вікна
WS_OVERLAPPED| // Перекриваюче вікно с заголовком и рамкою
WS_DLGFRAME|
WS_SYSMENU| // Системне меню
WS_MINIMIZEBOX,
/* Розташування і розміри вікна покладаються на Windows */
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL, // Дескриптор батьківського вікна
NULL, // Дескриптор меню
hThisInstance, // Дескриптор поточного вікна
NULL); // Додатковий аргумент (відсутній)
/* Відображення вікна */
ShowWindow(hwnd, nWinMode);
UpdateWindow(hwnd);
/* Цикл обробки повідомлень */
while(GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg); // Повернення повідомлень Windows
}
return msg.wParam;
}
/* Функція головного вікна */
LRESULT CALLBACK MainWinFunc(
HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
PAINTSTRUCT ps;
static HDC chdc;
switch(GameResult) {
/* Ініціалізація й налаштування даних при створенні вікна*/
case WM_CREATE:
m.PutMenu(hwnd, pl);
chdc = GetDC(hwnd);
SelectObject(chdc, (HGDIOBJ)CreatePen(PS_SOLID, 2, 0));
sb.SetStatus(gb.GetCross(), gb.GetZero(), pl.GetTurn());
if(pl.GetFirstTurn() == ECM)
PostMessage(hwnd, WM_LBUTTONDOWN, 0L, 0L);
break;
/* Реакція на повідомлення миши */
case WM_LBUTTONDOWN:
pl.Play(hwnd, gb, chdc, (int) LOWORD(lParam),
sb.SetStatus(gb.GetCross(), gb.GetZero(), pl.GetTurn());
sb.Draw(chdc, gb.GetPhysHeight());
gb.EndGame();
break;
/* Перемальовувати вікно після зміни його атрибутів та приховування */
Информация о работе Аналіз предметної області, постановка задачі дослідження з обраної області