ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Інформатика, програмування

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

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

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

    Курсова робота

    ПО ІНФОРМАТИЦІ

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

    засобами 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 < p> OnPaint = FormPaint

    PixelsPerInch = 96

    TextHeight = 13.

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

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

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

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

    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) наступної структури:

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

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

    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).

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

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

    Складний рівень

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

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

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

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

    RichEdit1 з Win32;

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

    Для Panel1:

    Align - alBottom.

    Для Button1:

    Caption - Закрити.

    Для RichEdit1:

    Align - alClient;

    ScrollBars - Vertical;

    Форма буде мати вигляд:

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

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

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

    RichEdit вміст текстового файлу "Правила". Форма набуває вигляду:

    Таким чином, гравець отримує можливість ознайомитися з правиламиігри

    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 слід скопіювати зображення, яке може бути довільним, тобто за бажанням користувача.

    У результаті форма набуде вигляду:

    . Для кнопки 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_;interfaceuses

    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), (5, 6, 7, 8), (9, 10, 11, 12), (13, 14, 15, 0))pic: TBitmap;procedure TForm1.NewGame;vari, j: integer;begintry pic.LoadFromFile (fname);except on EFopenError do begin

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

    Form1.Close; end;end;hc: = Pic.Height div H;wc: = Pic.Width div 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; i: integer;begin row: = 1; col: = 1;

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

    Finish: = False; break; end; if col <4 then inc (col) else begin col: = 1; inc (row); end; end;end;procedure TForm1.Formmas;vari, j: integer;begin
    SetLength (stp, H 1, W +1);
    SetLength (pole, H 1, W +1);for i: = 1 to H dofor j: = 1 to W dostp [i, j]: = h * (i-1) + j;stp [H, W]: = 0end;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;begincx: = 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) div 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-< br>1) * hc, j * wc, i * hc); end;end;procedure TForm1.Mixer;var x1, y1: integer; x2, y2: integer; d: integer; i: 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

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status