Шашка ойынын Паскаль программалау тілінде құру


Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 22 бет
Таңдаулыға:   

МАЗМҰНЫ

Кіріспе . . . 3

1. Графикадығы функциялар мен процедуралар . . . 5

1. 1 Turba Pascal-дағы Graph модулі . . . 5

1. 2 Спрайттар - ойындар программасын құру . . . 11

1. 3 Динамикалық қозғалыстағы суреттер . . . 12

2. Шашка ойынын Паскаль программалау тілінде құру . . . 17

2. 1 Шашка ойнының түсінігі . . . 17

2. 2 Шашка тақташасын құру . . . 19

Қорытынды . . . 24

Қолданылған әдебиеттер тізімі . . . 26

Кіріспе

Қазіргі кезде жаһандық ақпараттандыру кезеңін бастан кешірудеміз. Бүгінде адамзаттың тыныс-тіршілігі электрондық құрылғылардың жұмысына негізделген. Ғылымда, медицинада, техникада, ғарыштануда және т. б. көптеген салаларда кездесетін электрондық аппараттар адам жұмысын күннен-күнге жеңілдетіп, дами түсуде. Сол себептен барлық салаларға электрондық құрылғылар негізіндегі машиналар мен автоматтар жаппай енгізілуде. Ғарышты қашықтан басқару және бақылау станциялары, қашықтан оқыту, пайдалы қазбаларды зерттеу, ультра дыбыстық медицина, лазерлік операциялар жасау, өндіріс пен технологияны автоматтандыру, дүниежүзілік ұялы байланыс, жерсеріктік арналар, күрделі тәжірибелерді виртуальды модельдеу, т. б. жетістіктерді электрониканың дамуынсыз елестету мүмкін емес. Көп таңбалы сандары бар есептерді шығарып, алынған жауаптарды бірнеше мыңыншы дәрежеге енгізу тағы бар. Программалау тілі де соның ішінде маңызды орын алады.

Курстық жұмыстың мақсаты: Паскаль программалау тілінде шашка ойынының программасын құру және оны зерттеу болып табылады. Программалауда графиканың маңызы өте зор, себебі көптеген суреттер және графикалар мұндай программалардың көмегінсіз жүзеге аспайтын еді. Графиканы қолдану, не болмаса сурет салу қажетті мақсатқа қол жеткізіп қана қоймай, графикалық режимдегі процесті қызықты ете түседі, ал бұл қызығушылықтың арқасында программаны игеру де соғұрлым тезірек іске асады. Графикада ойындар құрастыру тек теориялық ережелерге ғана сүйеніп қоймай, практикаға да зор мән беру қажет. Программалау кезінде графикада алуан түрлі әрлеу жұмыстары жасалады, бұл процестерді жүзеге асыру үшін Graph модулі ең қажетті функция болып есептеледі.

Курстық жұмыстың мақсатына сүйене отырып, негізгі міндеттер келесі қағидаларға негізделеді:

  • Паскаль программалау тілінде графика құру барысында функция туралы жалпы ұғымды игеру;
  • Графиканың толық мүмкіндіктерін тереңірек зерттеу;
  • Graph және Crt модулдерін пайдалану арқылы программа құру;
  • Паскаль программалау тіліндегі шашка ойындарын құрастырудың негізгі ерекшеліктерін зерттеу;
  • Паскаль программалау тіліндегі шашка ойынының программасын құру тақырыбына есептер шығару.

Паскаль программалау тілінде графикалық жұмыстар екі режимде іске асады. Олардың бірі мәтіндік болса, екіншісі графикалық болып табылады. Мәтіндік режимде монитор экраны жолдар мен бағандарға бөлінген, яғни әрбір ұяшығында бір символдан орналасқан торды көрсетеді. Ал бұл кестенің өлшемі таңдалған режимге байланысты болып келетіндігін көрсетеді. Сондықтан да мәтіндік режимдегі графикалық суреттер символдардың үйлесімі арқылы жүзеге асады. Бұндай суреттерді кей жағдайда “псевдографика” деп те атайды.

Мәтіндік режимге қарағанда графикалық режимде монитордың экранында саны өте көп нүктелердің (пиксельдердің) үйлесімін көруге болады. Нүктелердің әртүрлі түстермен үйлесімі арқылы графикалық фигуралар құралады. Нүктелердің көлденең және тігінен орналасуына байланысты, экранның өлшемі бейнеадаптердің таңдалған режиміне сай келеді.

  1. Графикадығы функциялар мен процедуралар

1. 1Turba Pascal-дағы Graph модулі

Turbo Pascal программалау тілінде символдық режимнен бөлек графиктік режимде жұмыс істеуге болады. Онда әртүрлі графиктік кескіндер құрастыру мүмкіндігі бар. Turbo Pascal графиктік мүмкіндіктерін пайдалану үшін арнайы “GRAPH” кітапханасы қосылады. GRAPH модулінің графиктік процедуралары менен функцияларын қолданып графиктік кескіндерді құрастыруға болады. GRAPH модулі іске қосылысымен оның ішіндегі процедуралар мен функцияларды пайдалана беруге болады. Графикалық режимді іске қосу:

GRAPH модуліндегі процедуралар мен функцияларын пайдаланып экранға қандайда бір суретті шығару үшін ең алдымен графикалық режимді анықтап алу қажет. Бұл бөлімде графикалық режимді таңдау мен басқаруды игеріп, басқа бір режимге қалай көшу керектігін үйренуге болады. Процедураның жазылуы:

InitGraph (Var Driver, Mode: integer; Path: string) ;

мұндағы Driver- графикалық режимді анықтайтын параметр;

Mode - орнатылған драйверге байланысты берілетін графиктік режим параметрі;

Path - графиктік драйвер файлының атауы және жолы. Егер Path мәні бос жолға сәйкес келсе, драйвердің файлын іздестіру қолданыстағы каталогта жүзеге асады.

Driver параметрінің мәні Graph модулінде берілген тұрақтылардың тізбегімен шектеледі. Тұрақтылардың атауы мен оладың мәндері келесі кестеде көрсетілген (кесте 1) .

Кесте 1.

Тұрақтылар мен кодты анықтайтын драйверлер

Тұрақтының атауы
Сандық коды
Тұрақтының атауы: Detect
Сандық коды: 0 (Автоанықтау)
Тұрақтының атауы: CGA
Сандық коды: 1
Тұрақтының атауы: MCGA
Сандық коды: 2
Тұрақтының атауы: EGA
Сандық коды: 3
Тұрақтының атауы: EGA64
Сандық коды: 4
Тұрақтының атауы: EGAMono
Сандық коды: 5
Тұрақтының атауы: IBM8514
Сандық коды: 6
Тұрақтының атауы: HercMono
Сандық коды: 7
Тұрақтының атауы: ATT400
Сандық коды: 8
Тұрақтының атауы: VGA
Сандық коды: 9
Тұрақтының атауы: PC3270
Сандық коды: 10

Егер Driver параметрінің мәні Detect мәнімен тең болса (0), онда жүйе видеоадаптердің түрін автоматты түрде анықтауға кіріседі. Бұл жағдайды InitGraph DetectGraph процедурасын шақырады. Егер графикалық аппараттық қамтамасыз ету анықталған болса, сәйкесінше графикалық режим анықталады және графикалық режим қосылады.

GraphResult функцияcы Integer типінің мәнін қабылдайды, ол қате орындалған графиктік операциялардың кодын шығарады. Егер қателік табылмаса, онда функцияның мәні нөлге тең болады. Қателер коды 2 - кестеде көрсетілген. Функция жазылуы:

GraphResult: Integer;

Кесте 2.

GraphResult функцияcы үшін қателер коды

Тұрақты атауы
Коды
Анықтамасы
Тұрақты атауы: GrOk
Коды: 0
Анықтамасы: Қате жоқ
Тұрақты атауы: GrInitGraph
Коды: -1
Анықтамасы: Графиктік режим анықталмаған
Тұрақты атауы: GrNotDetected
Коды: -2
Анықтамасы: Адаптер типі анықталмаған
Тұрақты атауы: GrFileNotFind
Коды: -3
Анықтамасы: Драйвер типі табылмайды
Тұрақты атауы: GrInvalidDriver
Коды: -4
Анықтамасы: Анықталған файлда драйвер табылмайды
Тұрақты атауы: GrNoLoadMem
Коды: -5
Анықтамасы: Драйверді жүктеуге жады көлемі жетпейді
Тұрақты атауы: GrNolScanMem
Коды: -6
Анықтамасы: Аймақты қарастыруға жады көлемі жетпейді
Тұрақты атауы: Gr NoFloodMem
Коды: -7
Анықтамасы: Аймақты толтыруға жады көлемі жетпейді
Тұрақты атауы: GrFontNotFound
Коды: -8
Анықтамасы: Қаріп файлы табылмайды
Тұрақты атауы: GrNoFontMem
Коды: -9
Анықтамасы: Қаріп файлы табылмайды
Тұрақты атауы: GrInvalidMode
Коды: -10
Анықтамасы: Анықталған драйверге сәйкес келмейтін режим
Тұрақты атауы: GrError
Коды: -11
Анықтамасы: Жалпы қате
Тұрақты атауы: GrIOError
Коды: -12
Анықтамасы: Енгізу-шығару қатесі
Тұрақты атауы: GrInvalidFond
Коды: -13
Анықтамасы: Қаріптің дұрыс емес пішімі
Тұрақты атауы: GrInvalidFondNum
Коды: -14
Анықтамасы: Қаріптің нөмері дұрыс емес

GraphResult функциясына қаратпадан кейін қателік белгілері жойылады, сондықтан оған келесі қаратылу нөлді әкеледі.

Көптеген графикалық процедуралар мен функциялар экранға ағымдық позицияны көрсететін көрсеткішті қолданады, сонымен қатар, ол мәтіндік курсорға қарағанда жасырын тұрады. Бұл көрсеткіш басқа да графикалық экрандағы координаталар секілді (0, 0) координатасына ие бола отырып, экранның сол жақ жоғары бөлігінде орналасады. Сол арқылы экранның көлденең келген координатасы солдан оңға қарай, ал тігінен келген координатасы жоғардан төменге қарай үлкейеді.

GetMaxX және GetMaxY функциялары Word типінің мәнін қабылдайды, олар экранның ағымдық режимінде максималдық координаталары горизонталь және вертикаль бағытта жұмыс істейді. Мысалға:

usesGrap;

var

a, b: Integer;

begin

a := Detect;

InitGraph (a, b, ‘’) ;

WriteLn (GetMaxX, GetMaxY:5) ;

Readln;

CioseGraph

end.

GetColor функциясы ағымдағы түстің мәнін қайтарады. Функцияның жазылуы:

Function GetColor : Word

Бұл функция SetColor функциясы арқылы өзгертілген түстің мәнін қайтарады.

GetX және GetY функциялары Integer типінің мәнін қабылдайды, олар ағымдағы нүктенің тік және көлденең координаталар мәнін қайтарады.

GetX және GetY функцияларының мәндері экранның сол жақ жоғарғы бұрышынан нөлден басталып есептеледі. Функцияның жазылуы:

Function GetX : Integer;

FunctionGetY : Integer;

GetPixel функциясы Word типінің мәнін қабылдайды, ол Х және У координаталары бойынша орналасқан нүкте түсінің кодын анықтайды. Функцияның жазылуы:

Function GetPixel (X, Y: Integer) : Word;

Бұндағы Х, Ү -нүкте координаталары.

Графикалық режимді анықтағаннан кейін осы аталған режимнен шығудың да жолы болады. Графикалық режимнен шығу үшін CloseGraph процедурасы қолданылады. Бұл процедура графикалық режимге көшпей тұрған кездегі видеорежимді қалпына келтіреді. Процедураның жазылуы:

procedure CloseGraph;

Турбо Паскальда суретті экранға шығару кезінде түрлі түстерді қолдану мүмкіндігі бар. Егер экранды толық немесе белгілі бір толық фигураны бояу туралы сөз болса, онда оны біртекті фон арқылы және кейбір сызықтар арқылы жүзеге асыруға болады.

Белгілі бір түсті қажет ететін суреттерді шығаратын Graph модуліндегі программалар SetColor процедураларының көмегімен іске асады. Жазылу түрі:

procedure SetColor(Color : Word) ;

Color параметрі қабылдай алатын Graph модуліндегі тұрақтылардың тізбегі арқылы анықталады. Бұл тұрақтылар тізбегі мен сәйкесінше кодттары кестеде берілген.

Кесте 3.

Түстің тұрақтылары мен кодттары

Тұрақтының атауы
Коды
Түсі
Тұрақтының атауы: Black
Коды: 0
Түсі: Қара
Тұрақтының атауы: Blue
Коды: 1
Түсі: Қанық көк
Тұрақтының атауы: Green
Коды: 2
Түсі: Қанық жасыл
Тұрақтының атауы: Cyan
Коды: 3
Түсі: Көк-жасыл
Тұрақтының атауы: Red
Коды: 4
Түсі: Қызыл
Тұрақтының атауы: Magenta
Коды: 5
Түсі: Қошқыл көк
Тұрақтының атауы: Brown
Коды: 6
Түсі: Қоңыр
Тұрақтының атауы: LightGray
Коды: 7
Түсі: Ашық сұр
Тұрақтының атауы: DarkGray
Коды: 8
Түсі: Қанық сұр
Тұрақтының атауы: LightBlue
Коды: 9
Түсі: Көк
Тұрақтының атауы: LightGreen
Коды: 10
Түсі: Ашық жасыл
Тұрақтының атауы: LightCyan
Коды: 11
Түсі: Ашық көк-жасыл
Тұрақтының атауы: LightRed
Коды: 12
Түсі: Қызғылт
Тұрақтының атауы: LightMagenta
Коды: 13
Түсі: Таңқурай түсті
Тұрақтының атауы: Yellow
Коды: 14
Түсі: Сары
Тұрақтының атауы: White
Коды: 15
Түсі: Ақ
Тұрақтының атауы: Blink
Коды: 128
Түсі: Жарқыл

Графиканы суреттеу кезінде экрандағы тұйықталған облысты толтыру (түспен немесе өрнектермен) қажеттігі туындайды. Өрнекті және түсті таңдау үшін SetFillStyle процедурасы қолданылады. Процедураның жазылымы:

procedure SetFillStyle (Oattern : Word; Color : Word) ;

Кесте 4.

Тұрақтылар, оладың кодталуы мен толтыру түрлері

Тұрақтының атауы
Коды
Толтырылуы
Тұрақтының атауы: EmptyFill
Коды: 0
Толтырылуы: Біртекті фонның түсімен боялған (өрнегі жоқ)
Тұрақтының атауы: SolidFill
Коды: 1
Толтырылуы: Біртекті түспен боялған (SetColor процедурасымен)
Тұрақтының атауы: LineFill
Коды: 2
Толтырылуы:
Тұрақтының атауы: LtSlashFill
Коды: 3
Толтырылуы:
Тұрақтының атауы: SlashFill
Коды: 4
Толтырылуы:
Тұрақтының атауы: BkSlashFill
Коды: 5
Толтырылуы:
Тұрақтының атауы: LtBkSlashFill
Коды: 6
Толтырылуы:
Тұрақтының атауы: HatchFill
Коды: 7
Толтырылуы:
Тұрақтының атауы: XHatchFill
Коды: 8
Толтырылуы:
Тұрақтының атауы: InterleaveFill
Коды: 9
Толтырылуы:
Тұрақтының атауы: WideDotFill
Коды: 10
Толтырылуы:
Тұрақтының атауы: CloseDotFill
Коды: 11
Толтырылуы:
Тұрақтының атауы: UsesFill
Коды: 12
Толтырылуы: Қолданушының таңдауы бойынша

Графиканы суреттеу кезінде бағдарды экрандағы бастапқы бағытты берілген бағытқа қарай орналастыруға тура келеді. Ол үшін Турбо Паскальда MoveTo және MoveRel процедуралары қолданылады. MoveTo процедурасы координата бойынша бастапқыда берілген нуктені берілген нүктеге көшіреді. Жазылуы: procedure MoveTo (x, y : Integer) ;

х және у экрандағы бағдарша орналасатын координтаның нүктесі

MoveTo процедурасы бағдаршаны оның бұрынғы орнына байланысты берілген қашықтыққа орналастырады.

procedure MoveTo (Dx, Dy : Integer) ;

Dx және Dy - х және у координаталарының орын ауыстыруы.

Егер бағдарша (х, у) координатасындағы нүктеде орналасса, онда MoveRel оған жаңа координаталарды белгілейді: (x+Dx, y+Dy) . MoveTo және MoveRel процедураларының айырмашылығын келесі суреттен көруге болады.

Сурет 1. MoveTo процедурасы экранның сол жақ жоғары бөлігінен (х, у параметрлі), ал MoveRel процедурасы белгіленген бөліктен (Dx, Dy параметрлі) бастап санақ жүргізеді

Үлкен тіктөртбұрыш бұнда экранның ауданын білдіреді. Бағдаршаны А нүктеден В нүктесіне орналастыру керек деп есептелінеді. Егер осы жағдайда MoveTo параметрін қолданатын болса, онда процедурада параметрлер ретінде

х және у мәндерін хабарлау керек. Ал MoveRel процедурасына параметрі Dx және Dy болатындығы хабарланса, берілген бағдаршаны керек жерге орналастырады.

Графикалық терезелерді құру. Графиктің шығуын тек жалпы экранға ғана емес, сонымен қатар терезе деп аталатын белгіленген облыста да шығаруға болатындығы белгілі болды. Турбо Паскальда графикалық режимде терезені құру үшін SetViewPort прцедурасы қолданылады. процедураның жазылуы:

procedure SetViewPort (x1, y1, x2, y2 : Integer; Clip : Boolean) ;

(х1, у1) - бұнда терезенің жоғарғы сол жағын анықтайтын координаталар; (х2, у2) - терезенің төменгі оң жақ бөлігін анықтайтын координаталар; Clip - терезеге сыймайтын суретті экранға шығуы тиістілігін анықтайтын параметр.

Clip параметрі TRUE және FALSE болатын екі мәнді қабылдайды. Graph модулінде анықталған мәнді екі тұрақты арқылы беруге болады, олар - ClipOn және ClipOff.

Const

ClipOn =True;

ClipOff = False;

Егер Clip параметрі ClipOff мәніне ие болса, онда сурет терезеге толығымен шығатын болады. Ал егерде Clip параметрі ClipOn мәніне ие болса, онда суреттің белгілі бір бөлігі терезеге сыймай қалып, шеті бойынша қиылып қалады. Оның көрінісін келесі суреттен көруге болады.

Сурет 2. Сол жақ терезенің Clip параметрі ClipOff мәнін, ал оң жақ терезе ClipOn мәні қабылдайды

Сызықтың суреті терезеде басталады және оның шегімен аяқталады. Сол жақ терезенің сызығы толығымен көрінеді, ал оң жақ терезенің сызығы оның шеті бойынша қиылады.

Егер экранға тіктөртбұрышты тұрғызу керек болған жағдайда, ол үшін бөлек төрт сызықты шығарудың қажеті жоқ, бұл кезде арнайы Rectrange процедурасын қолданса жеткілікті. Rectrange процедурасы Сызықтарының түсі мен стилі берілген тіктөртбұрышты суреттейді. Процедураны жазылымы:

procedure Rectrange (х1, у1, х2, у2 : Integer) ;

Бұнда (х1, у1) және (х2, у2) координаталарымен берілген тіктөртбұрыштың сол жақ жоғарғы және оң жақ төменгі бұрыштары берілген.

Bar процедурасы экранға толтырылған тіктөртбұрыштарды шығаруға көмектеседі. Жазылуы: procedure Bar(x1, y1, x2, y2 : Integer) ;

(x1, y1) және (x2, y2) тіктөртбұрыштың сол жақ жоғарғы, оң жақ төменгі бөлігіне сәкес келетін координаталар. Оларды толтыру үшін SetFillStyle және SetFillPattern роцедуралары арқылы орындалатын шаблондар мен түстер қолданылады.

Сонымен қатар шеңберді де экранға шығаруға болады. Ол үшін саны көп қырлы көпбұрышты тұрғызады. Бірақ Circle процедурасын қолдану арқылы жұмысты жеңілдетудің жолы бар. Процедураның жазылуы:

procedure Circle(x, y: Integer; Rad : Word) ;

Бұндағы (х, у) - центрдің координаталары, Rad - шеңбердің радиусы. Шебердің іші SetColor процедурасының көмегімен боялады. Сонымен қатар сызықтың стилі де қолданылады, ол SetLineStyle процедурасы арқылы жүзеге асады, ескере кететін жайт сызықтың типі қандай болмасын шеңбер әрқашан тұтас сызықпен салынады.

  1. 2 Спрайттар - ойындар программасын құру

Программалауда анимация әсерлері көптеп пайдаланылады, яғни динамикалық қозғалыстағы суретті шығару үшін жүзеге асырылады. Бұл терминді статикалық (қозғалмайтын) суретке «жан біту» немесе «тірілуі» деп аударуға болады. «Жанды суреттер» компьютерлік графикада көңіл көтеру үшін қолданылуы мүмкін, оған компьютерлік ойындар мысал бола алады. Қазіргі заманға сай киноларды анимациялардың көмегімен тұрғызылған спецэфектткрдің қолдануынсыз елестету мүмкін емес секілді. Анимациялардың сонымен қатар бұданда зор жауапкершілікті талап ететін ғылыми және инженерлік графикада өзіндік қосымшалары бар.

Ағылшын тілдік арнайы әдебиетте computer-assisted animation және computer-generated animation терминдері қолданылады. Бірінші жағдайда адамның дәстүрлі түрде анимацияның кадрларын құру туралы айтады, ал компьютер өтіп жатқан барлық кадрларды салып отырады. Бұнда қозғалыстағы суреттерді компьютердің өзі салып жатқандығы қызықтыра түседі.

Қозғалыстағы суреттің иллюзиясы қозғалмайтын суреттің (кадрлардың) түрлі фазадағы жалғасқан қозғалысын көрсетеді. Суреттің ауысып отыруы тез жүру керек. Адамның көзқарасы кейбір инерцияларды қамтиды. Соған байланысты кадрлардың бірінен соң бірінің жалғасын табуы қалқып жүргендей әсер қалдырады. Егер суреттің алмасып отыруының жылдамдығы төмендейтін болса, онда қозғалыстың иллюзиясы сақталғанымен қозғалыс адамға үзікті көрінетін болады. Жоғары жылдамдық болып жылдамдығы секундына 30 кадрды көрсетуі болып табылады.

Дисплейдің экранына динамикалық суретті шығару үшін кадрлардың жалғасқан қозғалысының шығуын программалау қажет. Бұл жағдайда кадрлардың алмасуы жеткілікті деңгейде жоғары болу қажет. Динамикалық программалаудың негізгі мәселелері осында жатыр. Егер әрбі кадр саны көп графикалық элементтерден, сонымен қатар стрибуттарынан тұратын күрделі суреттерден құралған болса, мысалы, жарықты реттеу шарты және т. б., онда бұл мәселені шешу қиынға түседі.

Анимацияларды программада қолданудың оңай жолы ол - қарапайым түрде графикалық экранға сурет салу болып табылады. Осы әдіс cubes прогаммасында да қолданылады. Бұнда қарапайым суреттер пайдаланылады, алайда бұл жағдайда да суреттің тартыншақтап жылтаңдауын байқауға болады.

  1. Динамикалық қозғалыстағы суреттер

Динамикалық суреттерді программалаудың көп таралған тәсілдері спрайттарды қолдану болып табылады. Спрайттар әсіресе компьютерлік ойындарды программалауда жиі қолданылады. Спрайт әдебиеттерде динамикалық графикалық суреттерді құрайтын ақпараттық және программалық құраушысы ретінде анықталады. Спрайт экранда басқа суреттерден тәуелсіз қозғала алатын шағын көлемді гафикалық суреттерден тұрады. Спрайт негізгі суретті жауып тұру арқылы орналасады.

Ендеше спрайттың программалауын қарастыруға болады. Ең алдымен спрайттың келесі түрдегі құрылыммен байланысты екндігін айта кету керек:

type

SpriteType = record

Height. Width : integer;

Data : pointer;

end;

Бұл жазылымның жолы спрайттың өлшемі туралы ақпараттан (оның биіктігі мен ені) және суреттің алып тұрған орнының жадына бағытталған бағдаршадан тұрады. Осы іс-әрекеттерді орындау үшін CreatSprite және KillSprite процедуралары қолданылады. Сонымен қатар бір ғана нүктені сақтау үшін 1 байт көлемінде жады кететіндіге болжам жасалған.

procedure CreateSprite(var Sprite : SpriteType; Width, Height : integer) ;

begin

if Sprite. Data <> nil then

KillSprite(Sprite) ;

Sprite. Width := Width;

Sprite. Height := Height;

getmem(Sprite. Data, Width*Height) ;

end;

procedure KillSprite(var Sprite : SpriteType) ;

begin

with Sprite do

begin

FreeMem(Date, Width * Height) ;

Width := 0;

Height := 0;

Data := nil;

end;

end;

Бұл берілген спрайттың құрылымына сәйкес спрайтты құру және жою оның алып тұрған жадында орын алумен немесе босатылуымен анықталады. Енді бұрыннан бар процедураны пайдаланып жады (GetSprite) түрінде болатын тікбұрышты үшбұрышты экранға шығарамыз, ал оның экранға шығарылуы (DrawSprite) арқылы жүзеге асады:

procedure getsprite (var sprite : spritetype; x1, y1, x2, y2 : integer) ;

var

index, x, y : integer;

begin

createsprite(sprite, x2-x1+1, y2-y1+1) ;

index := 0;

for y := y1 to y2 do

for x := x1 to x2 do

begin

sprite. data^[index] := getpixel (x, y) ;

inc (index) ;

end;

end;

procedure drawsprite (var sprite : spritetype; x, y : integer) ;

var

index, xi, yi : integer;

begin

index := 0;

for yi := 0 to sprite. height - 1 do

for x := 0 to sprite. width - 1 do

begin

putpixel (xi + x, yi + y, sprite. data^[index] ;

inc (index) ;

end;

end;

Бұл процедуралардың біріншісі экранның аумағында берілген әрбір нүктенің түсін жай ғана жадыға сақтап отырады, ал екіншісі оған қарама-қарсы әрекет жасайды. Көрсетілген процедуралардың барлығы sprite программасында қолданылған, келесі есептен көруге болады.

Sprite программасы

program sprite;

uses

crt, graph, graphs;

type

byterraytype = array[0. . 65534] of byte;

bytearrayptr = ^bytearraytype;

spritetype = record

height, width : integer;

data : bytearrayptr;

end;

var

backgroundsprite, testsprite : spritetype;

xd, yd, ox, oy, i, x, y : integer;

procedure killsprite(var sprite : spritetype) ;

procedure createsprite(var sprite : spritetype; width, height : integer) ;

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Крест пен нөл ойынын программалау
Visual Basic-те компьютерлік логикалық ойын
Тurbo Pascal тілінде ”Санды тап” ойынына программа құру
«Санды тап» ойыны
АЛГОРИТМНІҢ ПРОГРАММАЛАУ НЕГІЗДЕРІНДЕГІ РОЛІ
Жаңа ақпараттық технологиялар, оны білім беру жүйесінде пайдаланудың маңыздылығы
Paradox берілгендер қоры
Спортлото ойыны
Сұрыптау және іздеу тәсілдері
Лабиринт
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz