Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Моделирование ігрових программ

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Система Delphi є одним із кращих розробок на сучасної теорії та практики програмування. Як і кожна така система, Delphi варта розробки програм, тож має дві характерні риси: створювані нею програми можуть працювати як під керівництвом Windows, а само собою воно належить до класу інструментальних коштів прискореної розробки програм. Це прискорення досягається з допомогою наступних властивостей… Читати ще >

Моделирование ігрових программ (реферат, курсова, диплом, контрольна)

Міністерство освіти і науки Російської Федерации.

Армавирский державний педагогічний университет.

Кафедра інформатики, і інформаційних технологій обучения.

КУРСОВА РАБОТА.

ПО ИНФОРМАТИКЕ.

Тема роботи: «Моделювання ігрових программ.

засобами Delphi «.

Автор роботи: студентка 303 групи МФ.

Татарникова Людмила Владимировна.

Науковий керівник: доцент Неверов.

Олександр Владимирович Оценка:____________________________.

Армавир

2004 г.

Содержание Введение 3.

Етапи розробки проекту 4.

Заключение

13.

Список літератури .14.

Додаток …15.

Система Delphi є одним із кращих розробок на сучасної теорії та практики програмування. Як і кожна така система, Delphi варта розробки програм, тож має дві характерні риси: створювані нею програми можуть працювати як під керівництвом Windows, а само собою воно належить до класу інструментальних коштів прискореної розробки програм. Це прискорення досягається з допомогою наступних властивостей Delphi: візуального конструювання форм і використання бібліотеки візуальних компонентов.

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

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

Метою згаданої курсової роботи є підставою створення одній з таких ігор середовищі програмування Delphi 6. Гра називається «Збери картинку». Вона служить аналогом гри «15», лише гравець переміщає не цифри, а фрагменти картинки.

Етапи розробки проекта.

Моделювання гри «Збери картинку» проходить ряд етапів. Їх виконання гарантує досягнення поставленої цели.

1.В Delphi 6 створити новий проект під назвою «Soberi». Встановити основні властивості вікна формы:

Left = 239.

Top = 185.

BorderIcons = [biSystemMenu].

BorderStyle = bsSingle.

Caption =Збери картинку.

ClientHeight = 254.

ClientWidth = 255.

Color = clBtnFace.

Font.Charset = DEFAULT_CHARSET.

Font.Color = clWindowText.

Font.Height = -11.

Font.Name = «MS Sans Serif «.

Font.Style = [].

Menu = MainMenu1.

OldCreateOrder = False.

OnCreate = FormCreate.

OnMouseDown = FormMouseDown.

OnPaint = FormPaint.

PixelsPerInch = 96.

TextHeight = 13.

2.Создать процедуру зі створення форми (обробка події OnCreate):

procedure TForm1. FormCreate (Sender: TObject) (стр.21) Для виконання необхідно у програму такі процедуры:

procedure TForm1. Formmas (стр.18) procedure TForm1. NewGame (стр.17).

Процедура Formmas формує масив клітин ігрового поля. NewGame дозволяє завантажувати картинку ‘pic1.bmp' із зовнішнього растрового файла, якщо при зверненні до файлу відбувається помилка, то форма закривається. Також при виконанні цієї процедури встановлюється розмір форми, рівний розміру картинки. Картинка розрізається на фрагменти, які перемішуються (процедура Mixer стр.20) і відбиваються на формі (процедура ShowPole стр.19). Для перемішування 150 раз випадково вибирається фрагмент зображення, які перебувають поруч із порожній клітиною і переміщається у цю порожню клітину. Для відображення фрагментів на формі задаються прямокутні області, на канву яких копіюються частини зображення. Форма набуває вид:

[pic].

3. Створити процедуру з обробки події OnMouseDown: procedure TForm1. FormMouseDown (Sender: TObject; Button: TMouse Button; Shift: TShiftState; X, Y: Integer) (стр.19).

Вона дозволяє при натисканні на кнопку миші вираховуватимуть номер фрагмента, у якому зроблено щиголь. Далі необхідно створити процедуру Move (стр.18). У ньому перевіряється, вільна чи одне з сусідніх клітин. Якщо можна, цей фрагмент стирається і знову відображається у сусідній клітині. Кожному фрагмента зображення поставлене відповідність його порядковий номер. Це дозволяє перевірити, зібрані чи номери як у потрібному порядку, тобто зібрано чи картинка повністю. Треба лише створити функцію Finish (стр.17), яка виконуватиме цю перевірку. Якщо картинка зібрано, то, на порожню клітину копіюється останній фрагмент зображення. На екран виводиться повідомлення «Мети було досягнуто! «Гравець має можливість зіграти вкотре, обравши «Yes «, коли він вибирає «No «, то програма завершує свою работу.

4. Розмістити на формі компоненти MainMenu1 і OpenPictureDialog1 з сторінок Standart і Dialog відповідно. Створити головне меню програми (подвійний щиголь мишею по MainMenu) наступній структуры:

Гра |Рівень |Довідка | |Нова |Простий |Правила гри | |Набір картинок.

|Середній |Про торішню програму | |Вихід |Складний | | | Тоді форма прийме вид:

[pic].

5. Створити процедуру для пункту меню гра — нова: procedure TForm1. N2Click (Sender: TObject) (стр.22).

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

6. Для пункту набір картинок потрібно вчинити ось як: заповнити компонент OpenPictureDialog файлами з зображеннями формату bmp, потім створити процедуру (щиголь мишею по набір картинок) procedure TForm1. N3Click (Sender: TObject) (стр.22), яка можна буде вибирати ці зображення під час игры.

Отже, програма працюватиме для картинки, загружаемой під час старту програми, і навіть дозволить завантажувати довільні зображення формату bmp.

7.

Програмуємо пункт меню вихід: procedure TForm1. N11Click (Sender: TObject) (стр.21) Цю процедуру забезпечує вихід із игры.

8. Щоб можна було вибору рівня гри, необхідно створити такі процедури: для пункту простий — procedure TForm1. N8Click (Sender: TObject) (стр.22); для пункту середній — procedure TForm1. N9Click (Sender: TObject) (стр.22); для пункту складний — procedure TForm1. N10Click (Sender: TObject) (стр.23).

Рівні залежать від кількості фрагментів, куди розбивається картинка.

[pic].

Простий рівень Середній уровень.

[pic].

Складний уровень.

9. Щоб гравець міг ознайомитися правила гри, обравши в меню пункт правил гри, необхідно зробити следующее:

. У конкурсній програмі Word Pad набрати текст, змістом якого є правил гри «Збери картинку «, зберегти їх у файлі формату rtf під назвою «Правила». Отриманий файл зберегти в папці, де знаходиться проект Soberi.

. Створити нової форми Form3;

. Розмістити на формі об'єкти: Button1 і Panel1 з сторінки Standart и.

RichEdit1 з Win32;

. Змінити деякі властивості объектов:

Для Panel1:

Align — alBottom.

Для Button1:

Caption — Закрыть.

Для RichEdit1:

Align — alClient;

ScrollBars — Vertical;

Форма матиме вид:

[pic].

. Командою Use Unit (Alt+F11) додати основну програму Unit3, пов’язані з Form3;

. Створити процедуру для пункту правил гри (щиголь мишею по правил гри): procedure TForm1. N6Click (Sender: TObject) (стр.22).

Цю процедуру виводить на екран форму Form3 й поміщає їхньому компонент.

RichEdit вміст текстового файла «Правила «. Форма приймає вид:

[pic].

Отже, гравець має можливість ознайомитися правила игры.

10. Кожна користувальницька програма повинна містити інформацію про тому, хто є його автором, де й коли у неї розроблена. Ці дані перебуватимуть у пункті меню про програму. Щоб їх туди помістити, необхідні такі действия:

. Створити новий проект Progr_ і зберегти їх у папці, у якій перебуває проект Soberi;

. Розмістити на формі кілька об'єктів: Label1, Label2, Button1,.

Panel1, Image, обравши їх у сторінках Standart і Additional;

. Змінити деякі властивості форми розміщених компонентів: для Form1:

Name — Form2;

Caption — Про торішню програму Soberi_;

BorderIcons: biMaximize — False; biMinimize — False; biSystemMenu — False.

Для Lable1:

Caption — Курсова робота з темі: «Моделювання ігрових програм засобами Delphi»;

WordWrap — True;

Alignment — taCenter.

Для Label2:

Caption — Виконала студентка 3 курсу математичного факультета.

Татарникова Л. В.;

WordWrap — True;

Alignment — taCenter.

Для Panel1:

Caption — Армавір 2004;

BevelInner — byLowered;

BevelOuter — byRaised;

Для Button1:

Caption — Закрыть.

. На компонент Image слід скопіювати зображення, що може бути довільним, т. е. за бажання пользователя.

Через війну форма прийме вид:

[pic].

. Для кнопки Button1 написати процедуру: procedure TForm2. Button1Click (Sender: TObject) begin close; end.

Цю процедуру дозволяє при натисканні на кнопку закривати форму.

. Отриманий проект Progr_ додаємо у початковий проект Soberi;

. Пункт меню про програму програмуємо наступній процедурою: procedure TForm1. N7Click (Sender: TObject) (стр.21).

При виклик цього пункту на екран буде виводитися вікно форми з проекта.

Progr_, яке містить основні інформацію про проекті Soberi.

11. Заключний етап, у якому слід запустити проект.

Заключение

.

У виконання курсової роботи у середовищі програмування Delphi 6 була змодельована логічна гра під назвою «Збери картинку». Гра містить меню, використовуючи що можна вибирати різні види картинок, теж є можливість встановлювати рівень складності, який любить гравець. Якщо необ-хідно ознайомитися правила гри, їх теж можна знайти у головному меню, там-таки перебуває основна інформацію про программе.

Цей проект можна з більшим успіхом використовуватися під час уроків інформатики у шкільництві, за приклад програми, розробленої засобами Delphi 6, соціальній та якості одного із ігор, розвивають логічне мышление.

Список використовуваної литературы:

1. Архангельський А. Я. Інтегрована середовище розробки Delphi — М.:ЗАО, Біном; 1999.

2. Марко Кэнту для професіоналів Delphi 6: вид. Пітер, 2002.

3. Фаронов У. У. DELPHI 6: Навчальний курс (+ дискета) — СПб: Пітер, 2002.

Приложение.

Текст программы.

unit Soberi_; interface uses.

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtDlgs;

type TForm1 = class (TForm).

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

OpenPictureDialog1: TOpenPictureDialog; procedure FormCreate (Sender: TObject); procedure FormMouseDown (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer); procedure FormPaint (Sender: TObject);

procedure ShowPole; procedure Mixer; procedure NewGame; procedure Formmas; procedure N11Click (Sender: TObject); procedure N7Click (Sender: TObject); procedure N2Click (Sender: TObject); procedure N3Click (Sender: TObject); procedure N6Click (Sender: TObject); procedure N8Click (Sender: TObject); procedure N9Click (Sender: TObject); procedure N10Click (Sender: TObject); private.

{ Private declarations } public.

{ Public declarations } end; var Form1: TForm1;

implementation.

uses Progr, Unit3;

{$R *.dfm}.

var wc, hc, h, w: integer;fname: string; pole: array of array of byte; ex, ey: integer; stp: array of array of byte; {(1, 2, 3, 4); INSERT INTO `ref` (`id_predmet`, `name_predmet`, `id_ref`, `name_ref`, `text_ref`) VALUES (5, 6, 7, 8), (9, 10, 11, 12), (13, 14, 15, 0)} pic: TBitmap; procedure TForm1. NewGame; var і, j: integer; begin try pic. LoadFromFile (fname); except on EFopenError do begin.

ShowMessage («Помилка звернення до файлу «+ fname);

Form1.Close; end; end; hc:=Pic.Height divx H; wc:=Pic.Width divx W; ClientWidth:= wc * W; ClientHeight:= hc * H; for i:=1 to H do for j:=1 to W do pole[i, j]: = stp[i, j]; Form1. Mixer; Form1. ShowPole; end; function Finish: boolean; var row, col: integer; і: integer; begin row:=1; col:=1;

Finish:= True; for i:=1 to 15 do begin if pole[row, col] і then begin.

Finish:=False; break; end; if col < 4 then inc (col) else begin col :=1; inc (row); end; end; end; procedure TForm1. Formmas; var i, j: integer; begin SetLength (stp, H+1,W+1); SetLength (pole, H+1,W+1); for i:=1 to H do for j:=1 to W do stp[i, j]: =h*(i-1)+j; stp[H, W]: =0 end; procedure Move (cx, cy: integer); var r: integer; begin if not ((abs (cx-ex)=1) and (cy-ey=0) or.

(abs (cy-ey)=1) and (cx-ex=0)) then exit;

Pole[ey, ex]: =Pole[cy, cx];

Pole[cy, cx]: =0; ex:=cx; ey:=cy;

Form1.ShowPole; if Finish then begin pole[H, W]: =H*W;

Form1.ShowPole; r:=MessageDlg («Мети було досягнуто! «+ #13+.

" Вкотре? ", mtInformation, [mbYes, mbNo], 0); if r = mrNo then Form1. Close;

Form1.NewGame; end; end; procedure TForm1. FormMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var cx, cy: integer; begin cx:= Trunc (X / wc) + 1; cy:= Trunc (Y / hc) +1; Move (cx, cy); end; procedure TForm1. ShowPole; var Source, Dest: Trect; sx, sy: integer; i, j: integer; begin for i:=1 to W do for j:=1 to H do begin sy:=((pole[i, j]-1) divx W)*hc; sx:=((pole[i, j]-1) mod W)*wc;

Source:=Bounds (sx, sy, wc, hc);

Dest:=Bounds ((j-1)*wc,(i-1)*hc, wc, hc); if pole[i, j] 0 then Canvas. CopyRect (Dest, pic. Canvas, Source) else Canvas. Rectangle ((j-1)*wc,(i- 1)*hc, j*wc, i*hc); end; end; procedure TForm1. Mixer; var x1, y1: integer; x2, y2: integer; d: integer; і: integer; begin x1:=H; y1:=W; randomize; for i:=1 to 150 do begin repeat x2:=x1; y2:=y1; d:=random (4)+1; case d of.

1: dec (x2);

2: inc (x2);

3: dec (y2);

4: inc (y2); end; until (x2>=1) and (x2=1) and (y2.

Показати весь текст
Заповнити форму поточною роботою