Delphi-да ойын жасау


Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 20 бет
Таңдаулыға:
ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
Қ. И. СӘТБАЕВ АТЫНДАҒЫ ҚАЗАҚ ҰЛТТЫҚ ТЕХНИКАЛЫҚ УНИВЕРСИТЕТІ
кафедрасы
КУРСТЫҚ ЖҰМЫС
Тақырыбы: „ Delphi-да ойын жасау ”
Oқытушы:
Орындаған:
Алматы 2005
Мазмұны
Кіріспе 4
Проект сараптамасының кезеңдері 5
Қорытынды 14
Әдебиеттер тізімі . 15
Қосымша . . . . . . . . . ……. 16
Кіріспе
Delphi жүйесі қазіргі заманға сай сарапталған теория және практика программалаулар ішіндегі ең негізгілерінің бірі. Басқа жүйелер сияқты, Delphi программалар құру үшін жасалған және екі мінезіне сай ерекшеліктері бар: Delphi-де құралған программалар Windows-тан басқа да жүргізуші жүйелерде жұмыс істейді, ал Delphi-дің өзі тездеткіш сарапталған программалар ішіндегі инструменталдық әдістер класына жатады. Бұл тездеткіш келесі көрсетілген 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) (22 бет)
Оның орындалуына келесі процедураларды программаға енгізу қажеттті:
procedure TForm1. Formmas (19 бет)
procedure TForm1. NewGame (18 бет)
Formmas процедурасы ойын алаңындағы клетка массивін формалайды. New-Game сыртта бөлінген файлдан ‘pic_1. bmp’ суретін ашуға мүмкіндік береді. Егер файлға назар аударылған кезінде қате табылса, онда форма жабылады. Сол сияқты осы процедураның орындалу кезінде суреттің пішініне сай форманың пішіні енгізіледі. Сурет орындарын алмастыратын ( Mixer процедурасы 21 бет) және формада орналасатын ( ShowPole процедурасы 20 бет) бөлшектерге бөлінеді. Бос тұрған клетканың жанында тұратын және сол бос клеткаға өте алатын, 150 рет кез келген түрде араласып шығатын суреттің бөлшегі алынады. Бөлшектердің бейнеленуі үшін формада, канваға суреттің бөлшектері көшірілетін, тікбұрышты облыстар беріледі.
3. OnMouseDown жағдайын өңдеумен процедура құру:
procedure TForm1. FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) (20 бет)
Ол тышқанның батырмасын басқан кезде фрагменттің номерін есептеуге мүмкіншілік береді. Ары-қарай Move процедурасын құру қажетті (19 бет) . Бұда көрші тұрған клетканың бос екендігін тексереді. Егер бос болса, онда бұл бөлшек өшіріліп, көрші тұрған клеткадан қайта шығады. Суреттің әр бөлшегіне өзіне сай реттік номер қойылған. Бұл сандардың дұрыс ретінде жиналғанын, яғни суреттің толық жиналғанын тексереді. Оны тексеру үшін Finish процедурасын құру керек (18 бет) . Егер сурет толық жиналса, онда бос клеткаға суреттің соңғы бөлшегі көшіріледі. Экранға “Мақсат орындалды!” деген хабарлама шығады. Егер ойыншы “Yes”-ті таңдаса, онда оның тағы бір рет ойнауға мүмкіншілігі бар, ал егер “No”-ді таңдаса онда программа өзінің жұмысын толығымен аяқтайды.
4. Формаға Standart және Dialog беттерінен MainMenu1 және OpenPictureDialog1 компоненттерін қою керек. Программаның басты менюін келесі структура бойынша құру (тышқанды MainMenu-ға апарып екі рет басу) :
5. Менюдің Ойын (игра) пунктіне процедура құру - жаңа:
procedure TForm1. N2Click(Sender: TObject) (23 бет)
Бұл процедура ойыншыға ойынды басынан бастауға мүмкіншілік береді. Сурет қайтадан формада араласып тұратын бөлшектерге бөлініп кетеді.
6. Сурет таңдау (набор картинок) пунктіне келесі қойылған талаптарды істеу керек: OpenPictureDialog компонентін bmp форматтағы суреттер файлдарымен толтыру, содан соң ойын кезінде осы суреттерді таңдауға мүмкіншілік беретін мына процедураны құру (тышқанмен сурет таңдау пунктін басу) .
procedure TForm1. N3Click(Sender: TObject) (23 бет),
Осы арқылы программа программаның бас кезінде енгізіліп жатқан сурет үшін жұмыс істейді, сол сияқты bmp форматтағы суреттерді енгізуге мүмкіншілік береді.
7. Менюдің Шығу (выход) пунктін програмалайық:
procedure TForm1. N11Click(Sender: TObject) (22 бет)
Бұл процедура ойыннан шығуды қамтамасыз етеді.
8. Ойынның деңгейін таңдау үшін келесі процедураларды таңдау керек:
жеңіл пункті үшін - procedure TForm1. N8Click(Sender: TObject) (23 бет) ;
орташа пункті үшін - procedure TForm1. N9Click(Sender: TObject) (23 бет) ;
қиын пункті үшін - procedure TForm1. N10Click(Sender: TObject) (24 бет) .
Суреттің бөлшектерге бөлінуіне қарай, деңгейі анықталады
9. Ойыншы менюдағы ойын ережесі пунктін таңдап, ойын ережесімен танысу үшін төменде көрсетілгендерді істеу керек:
- Word Pad программасында “Суретті жина” ойынының ойнау ережесі туралы текст теру, оны “Ереже” деп аталатын rtf форматтағы файлға сақтау. Алынған файлды Soberi проектісі орналасқан папкіге сақтау;
- Жаңа Form3 формасын құру;
- Формаға Win32-нің ішіндегі RichEdit1 және Standart беттерінен Button1 және Panel1 объектілерін қою.
- Объектілердің кейбір анықтамаларын өзгерту:
Panel1 үшін:
Align - alBottom.
Button1 үшін:
Caption - Жабу (Закрыть) .
RichEdit1 үшін:
Align - alClient;
ScrollBars - Vertical;
- Use Unit (Alt+F11) командасымен Form3-пен байланысқан Unit3-ті басты программаға қосу;
- Ойын ережесіпункті үшін процедура құру (тышқанменойын ережесінбасу) :
procedure TForm1. N6Click(Sender: TObject) (23 бет)
Бұл процедура экранға Form3 формасын шығарады және соның RichEdit компонентіне “Ереже” текстік файлындағы тексті кіргізеді. Сонда форманың түрі мынандай болады:
Осы арқылы, ойыншы ойын ережесімен танысуға мүмкіндік алады.
10. Әр қолданушы программа өзінің авторы кім екені туралы, қай жерде жасалып шыққан және т. б. өзі туралы мәліметтері болу керек. Бұл деректер программа туралы меню пунктінде орналасады. Сол деректерді оның ішіне кіргізу үшін, келесі әрекеттерді орындау керек.
- Жаңа Progr_ проектісін құрып, оны Soberi проектісі орналасқан папкіге сақтау;
- Формаға бірнеше объекті қою: Standart және Additional беттерінде орналасқан Label1, Label2, Button1, Panel1, Image.
- Орналасқан компоненттермен форманың кейбір анықтамаларын өзгерту:
Form1 үшін:
Name - Form2;
Caption - Soberi_ Программа туралы ;
BorderIcons:
biMaximize - False;
biMinimize - False;
biSystemMenu - False.
Lable1 үшін:
Caption - Курстық жұмыс: „Ойын программаларын Delphi әдістемелерімен моделдеу”;
WordWrap - True;
Alignment - taCenter.
Label2 үшін:
Caption - Информатика факультетінің 2 курс студенті Ахмадиев Ж. орындады;
WordWrap - True;
Alignment - taCenter.
Panel1 үшін:
Caption - Армавир 2005;
BevelInner - byLowered;
BevelOuter - byRaised;
Для Button1:
Caption - Жабу.
- Image компонентіне, қолданушының еркі бойынша кез келген суретті енгізу.
- Button1 батырмасы үшін төмендегі процедураны жазу:
procedure TForm2. Button1Click(Sender: TObject)
begin
close;
end.
Бұл процедура батырманы басқан кезде форманы жабуға мүмкіндік береді.
- Пайда болған Progr_ проектісін, алдыңғы Soberi проектісіне қосамыз;
- Программа туралыменю пунктін келесі процедурамен программалаймыз
procedure TForm1. N7Click(Sender: TObject) (22 бет) .
Осы пункті шақыру кезінде Soberi проектісіндегі негізгі мәліметтер жазылатын Progr_ проектісіндегі форма терезесін шығарады.
11. Проектіні іске қосатын, қорытынды кезеңі.
ҚОРЫТЫНДЫ
Delphi тiлi объектi-бағдарланған бағдарламалау тiлi. Ол жоғары деңгейдегi тiлдердiң қатарына кiредi. Көптеген программистер Delphi тiлi арқылы қиын есептердiң шешуiн табады. Delphi тiлi кеңiнен таралған бағдарламалау тiлi болып саналады. Осы курстық жұмысымды орындау мен үшiн өте маңызды болды. Осы жұмыс арқылы мен Delphi программасын жақсы игердім. Бұл жиналған бiлiм болашақта маған өте қажет болады деп сенемiн. Әрине, бұл курстық жұмыста ұсынылған мәлiметтер кiшкене аз боп тұр, мұның себебi қазақ тiлiнде материалдардың аздығынан деп ойлаймын. Бiрақ, келешекте барлығы толық болатындығына еш күмәнiм жоқ.
Қолданылған әдебиеттер тізімі:
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), (5, 6, 7, 8), (9, 10, 11, 12), (13, 14, 15, 0) }
pic: TBitmap;
procedure TForm1. NewGame;
var
i, j:integer;
begin
try
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 do
begin
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;
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;
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz