«Жылан» ойыны тақырыбы бойынша JAVA бағдарламалау тілі



КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 6
1. ЕСЕПТІҢ ҚОЙЫЛЫМЫ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
1.1 Java тілінде ойынды жасаудың мақсаты мен міндеті ... ... ... ... ... ... ... ... ... ... 7
2 БАҒДАРЛАМАЛЫҚ ҚАМТАМАНЫ ЖОБАЛАУ ... ... ... ... ... ... ... ... ... ... ... ...8
2.1 Аплетке қойылатын талаптарды талдау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..8
2.2 Есептi шешудің әдiстерi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9
2.3 Аплеттің деректер құрылымының ұйымдастырылуы ... ... ... ... ... ... ... ... ... .10
3 БАҒДАРЛАМАЛЫҚ ҚАМТАМАНЫ ІСКЕ АСЫРУ ... ... ... ... ... ... ... ... ... ...12
3.1 Аплет құрылымының анықталуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..12
3.2 Аплеттің тестіленуі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .16
4 ҚҰЖАТТАУ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 18
4.1 Қолданушыға арналған нұсқау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...18
4.2 Жүйелік администраторға арналған нұсқау ... ... ... ... ... ... ... ... ... ... ... ... ... ..18
ҚОРЫТЫНДЫ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...19
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..20
ҚОСЫМША А ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...21
ҚОСЫМША Б ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 25
ҚОСЫМША В ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...33
Java тілі – 1995 жылы 23 мамыр күні алғаш ресми пайда болған. Кейінірек Java тілі браузерлерді бағдарламалау үшін қолданыла бастады, сондай-ақ апплеттер пайда болды. Біраз жылдардан соң Java-да түрлі толыққанды қосымшалар құруға болатындығы байқалды. Олардың графикалық элементтері компоненттер түрінде безендіріле бастады — Java CORBA технологиясымен байланыса отырып, реттелген жүйелер және аралық программалық қамтамалар әлеміне бірге кірген JavaBeans пайда болды. Серверлер деректер қорымен өзара байланыста болуы керек - JDBC (Java DataBase Connection) драйверлері пайда болды. Өзара байланыс сәтті болып шықты және деректер қорын басқарудың көптеген жүйелері, операциялық жүйелер өз ядроларына Java-ны қосып алды, мысалы Oracle, Linux, MacOS X, AIX. Қазіргі таңда Java тілі өзінің әйгілі ойындарымен танымал.
Java тілінің тез және кең таралуы – Java деп аталатын арнайы құрылған программалау тілін қолдануымен тығыз байланысты. Бұл тіл бағдарламалаушылардың ойы бойынша төмендегі тілдердің жаман жақтарын ескермей жақсы жақтарын ала отырып, Smalltalk, Pascal, C++ және т.б. тілдер қорында құрылған. Ол жөнінде әр түрлі пікірлер таралған, бірақ бұл тілді оқып үйрену өте ыңғайлы, онда жазылған программалар жеңіл оқылады: алғашқы программаны тілді үйреніп бастаған соң бір сағаттан кейін жазуға болады.
Әйгілі «Жылан» ойынын іске асыратын Java-аплетті жасау керек. Яғни, Ойыншы азықты (немесе басқа заттарды) жинап, өз құйрығымен және ойын алаңынын шеттеріне соғысудан қашатын және жазықтық бетінде жүретін ұзын әрі жіңішке жыланды басқарады. Кейбiр нұсқаларында өрісте қосымша бөгеттер болады. Әрдайым жылан азықтың біреуін жеген сайын ол ұзара түседі, бұл ойынды бiртiндеп күрделендiреді. Ойыншы жыланның басының қозғалыс бағытын басқарады (әдетте 4 бағыты бар: жоғары, төмен, солға, оңға), ал жыланның құйрығы соның артынан ерiп жылжиды. Ойыншы жыланның қозғалысын тоқтата алмайды.
Қазіргі кезде «Жылан» ойынын iске асырудың көптеген нұсқалары бар. Көбінесе негізінен Addobe Flаsh технологиясы көмегімен жүзеге асырылады. Әйтсе де, Java-да iске асырудың бірнеше нұсқалары бар.
Өндіріліп жатқан Java-аплет функционалдық мүмкiндiктері бойынша толық функционалды Flаsh-аналогтарымен салыстырыла алмайды. Бiрақ ол тегiн және ашық бастапқы кодымен болады. Онда іске асырылған ойын ережелері жалпыға таныс «Жылан» ойыны ережелеріне сәйкес болады, сондықтан ол ойын-сауық мазмұнындағы сайттарда қолданыла алады.
1. В.Н. Цыганенко. Технология программирования. Конспект лекций. Уч. пособие. Омск, Изд-во ОмГТУ, 2005, 32 с.
2. И.Н. Блинов, В.С. Романчик. Java 2. Практическое руководство. Минск, Изд-во УП «УниверсалПресс», 2005.
3. Технология программирования. Методические указания к курсовому проектированию. Сост. В.Н. Цыганенко. Омск, Изд-во ОмГТУ, 2005, 44 с.
4. Enterprise-қосымшаларын Java-да жасау туралы блог. Java ағындары туралы мақала. Сайт: http://topcode.ru/2010/04/09/potoki-v-java
5. «Жылан» флэш-ойынының онлайн үлгілері туралы сайт: http://www.flashgames.ru/igry/zmieika/zmieika.html
6. «Жылан» ойынын Java тілінде іске асыру нұсқасы сипатталған мақала: http://ru.wikibooks.org/wiki/Java/Игра_змейка

АННОТАЦИЯ

Бұл курстық жұмыс Жылан ойыны тақырыбы бойынша JAVA бағдарламалау
тілі пәнінен жазылды. Жұмыстың мақсаты - Жылан ойынын іске асыратын Java-
аплетті өндіру. . Орындалған жұмыстың объектiсі Java-аплеттерде
анимацияларды құрастыру әдiстері болып табылады. Курстық жұмыс 4 бөлімнен,
33 беттен, 6 суреттен құралған және 6 әдебиет қолданылды. Есептің қойылымы
бөлімінде курстық жұмыстың мақсаты мен есептің шарты қарастырылған. Негізгі
бөлімде логикалық ойынды жобалау үшін қолданылыған Java тілінің
функциялары, әдістері мен операторлары сипатталды. Бағдарламаны іске асыру
бөлімінде бағдарламадан алынған нәтижелер мен формалар көрсетілді. Құжаттау
бөлімінде жүйелік администратор мен қолданушыға арналған нұсқама берілген.
Курстық жұмыс қорытындымен аяқталады.

Жұмыс процесінде қосымшаның келесі комопоненттері жобаланды және iске
асырылды:

SnakeGame.class – Жылан аплеті;

Snake.htm - аплеттi тестілеу үшiн веб-бет.

Бағдарлама Java (JRE 6.0) программалау тiлiнде Eclipse ортасында
жүргiзiлдi.

МАЗМҰНЫ

КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... ... 6
1. ЕСЕПТІҢ
ҚОЙЫЛЫМЫ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... 7
1.1 Java тілінде ойынды жасаудың мақсаты мен
міндеті ... ... ... ... ... ... ... ... ... ... 7
2 БАҒДАРЛАМАЛЫҚ ҚАМТАМАНЫ
ЖОБАЛАУ ... ... ... ... ... ... ... ... ... ... ... ...8
2.1 Аплетке қойылатын талаптарды
талдау ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... .8
2.2 Есептi шешудің
әдiстерi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... 9
2.3 Аплеттің деректер құрылымының
ұйымдастырылуы ... ... ... ... ... . ... ... ... ... 10
3 БАҒДАРЛАМАЛЫҚ ҚАМТАМАНЫ ІСКЕ АСЫРУ
... ... ... ... ... ... ... ... ... ... 12
3.1 Аплет құрылымының
анықталуы ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
...12
3.2 Аплеттің
тестіленуі ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ...16
4
ҚҰЖАТТАУ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... .18
4.1 Қолданушыға арналған
нұсқау ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... .18
4.2 Жүйелік администраторға арналған
нұсқау ... ... ... ... ... ... ... ... ... ... ... ... . ... .18
ҚОРЫТЫНДЫ ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... .19
ПАЙДАЛАНЫЛҒАН
ӘДЕБИЕТТЕР ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... 20
ҚОСЫМША
А ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... 21
ҚОСЫМША
Б ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... .25
ҚОСЫМША
В ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... 33

КIРIСПЕ

Java тілі – 1995 жылы 23 мамыр күні алғаш ресми пайда болған.
Кейінірек Java тілі браузерлерді бағдарламалау үшін қолданыла бастады,
сондай-ақ апплеттер пайда болды. Біраз жылдардан соң Java-да түрлі
толыққанды қосымшалар құруға болатындығы байқалды. Олардың графикалық
элементтері компоненттер түрінде безендіріле бастады — Java CORBA
технологиясымен байланыса отырып, реттелген жүйелер және аралық
программалық қамтамалар әлеміне бірге кірген JavaBeans пайда болды.
Серверлер деректер қорымен өзара байланыста болуы керек - JDBC (Java
DataBase Connection) драйверлері пайда болды. Өзара байланыс сәтті болып
шықты және деректер қорын басқарудың көптеген жүйелері, операциялық жүйелер
өз ядроларына Java-ны қосып алды, мысалы Oracle, Linux, MacOS X, AIX.
Қазіргі таңда Java тілі өзінің әйгілі ойындарымен танымал.
Java тілінің тез және кең таралуы – Java деп аталатын арнайы құрылған
программалау тілін қолдануымен тығыз байланысты. Бұл тіл
бағдарламалаушылардың ойы бойынша төмендегі тілдердің жаман жақтарын
ескермей жақсы жақтарын ала отырып, Smalltalk, Pascal, C++ және т.б. тілдер
қорында құрылған. Ол жөнінде әр түрлі пікірлер таралған, бірақ бұл тілді
оқып үйрену өте ыңғайлы, онда жазылған программалар жеңіл оқылады: алғашқы
программаны тілді үйреніп бастаған соң бір сағаттан кейін жазуға болады.
Әйгілі Жылан ойынын іске асыратын Java-аплетті жасау керек. Яғни,
Ойыншы азықты (немесе басқа заттарды) жинап, өз құйрығымен және ойын
алаңынын шеттеріне соғысудан қашатын және жазықтық бетінде жүретін ұзын әрі
жіңішке жыланды басқарады. Кейбiр нұсқаларында өрісте қосымша бөгеттер
болады. Әрдайым жылан азықтың біреуін жеген сайын ол ұзара түседі, бұл
ойынды бiртiндеп күрделендiреді. Ойыншы жыланның басының қозғалыс бағытын
басқарады (әдетте 4 бағыты бар: жоғары, төмен, солға, оңға), ал жыланның
құйрығы соның артынан ерiп жылжиды. Ойыншы жыланның қозғалысын тоқтата
алмайды.

Қазіргі кезде Жылан ойынын iске асырудың көптеген нұсқалары бар.
Көбінесе негізінен Addobe Flаsh технологиясы көмегімен жүзеге асырылады.
Әйтсе де, Java-да iске асырудың бірнеше нұсқалары бар.

Өндіріліп жатқан Java-аплет функционалдық мүмкiндiктері бойынша толық
функционалды Flаsh-аналогтарымен салыстырыла алмайды. Бiрақ ол тегiн және
ашық бастапқы кодымен болады. Онда іске асырылған ойын ережелері жалпыға
таныс Жылан ойыны ережелеріне сәйкес болады, сондықтан ол ойын-сауық
мазмұнындағы сайттарда қолданыла алады.

1 ЕСЕПТІҢ ҚОЙЫЛЫМЫ

1. Java тілінде ойынды жасаудың мақсаты мен міндеті

Ойынның мазмұны – алма мен басқа да азықтарды жеу арқылы ұпайларды
жинау болып табылады. Әрбір желінген алма немесе азық үшін ұпайлар
беріледі. Сонымен қатар, жыланның ұзындығы ұзарады. Бұл ойынды қиындату
мақсатында құралған, яғни жылан ұзарған сайын оның өз өзімен немесе ойын
шекараларымен соқтығысу мүмкіндігі жоғарылайды. Жылан өз өзімен және ойын
алаңынын шекарасымен соқтығыспауы керек. Бұл логикалық ойын қолданушының ой-
өрісін дамытады, сондай-ақ бос уақытын өткізу кезінде қолданғанға өте
ыңғайлы. Ойын алаңын тартымды ету үшін түрлі түсті графика қолданылған.
Өңделіп жатқан ойын интерфейсі қолданушыға ыңғайлы және түсінікті болуы
керек.
Бұл бағдарлама ойын-сауық мазмұнындағы сайттарға орналастыру үшiн
арналған. Программа бейнені экранға шығара отырып, пернетақта батырмасының
басылғанын сезінуі қажет.
Программаны құру кезінде екі класс жасалынды. Олар: Snake және
SnakeGame кластары болып табылады. Енгізілген және шығарылған мәліметтер
ағымын талдай отырып, программаның ортақ интерфейсін өңдеп шығарамыз және
программа орындайтын функцияларға деген талаптар мен олардың құрылымын
анықтаймыз.

2 БАҒДАРЛАМАЛЫҚ ҚАМТАМАНЫ ЖОБАЛАУ

2.1 Аплетке қойылатын талаптарды талдау

Аплетке қойылатын талаптарды талдау үшiн қолданудың преценденттер
диаграммасын пайдаланамыз (сурет 2).

Сурет 2.1 – Аплет үшін прецеденттер диаграмасы

Сурет 2.1 диаграммаға сәйкес қолданушы істей алады:
• Ойын алаңында жылан қозғалысын бақылау;
• Алманы жеу мақсатында және жыланның өз өзімен қиылысуын және
соқтығысуды болдырмау мақсатында жыланның қозғалыс бағытын
басқару;
• Жыланның қате қимылдары туралы ақпарат алып отыру
(соқтығысуларда және өз өзімен қиылысуда);
• Ұпай санын қадағалау.

Бағдарламаға немесе бағдарламалық қамтамаға қойылатын талаптар
Функционалдық мiнездемелерге қойылатын талаптар
Бағдарлама келесi функциялардың орындалу мүмкiндiгін қамтамасыз ету
керек:
• ойын алаңы бойынша жыланның (жылтыраусыз) автоматты қозғалысы;
• пернетақтадағы стрелкалардың көмегімен жыланның қозғалыс бағытын
басқару;
• жыланның алманы сәттi жегенiне ұпайларды есептеп шығару;
• жыланның бөгеттермен, ойын алаңынын щеттерімен соқтығысуына
немесе өз-өзімен қиылысуына ұпайларды алу;
• жыланның бөгеттермен, ойын алаңынын щеттерімен соқтығысуы немесе
өз-өзімен қиылысуы туралы хабарларды экранға шығару
Сенiмдiлiкке қойылатын талаптар
• Программалық өнiм программалық қамтамасыз етудi өңдеуге
қойылатын талаптардың заманауи деңгейiне сәйкес келуi керек (құрылымдық
немесе обьектті-бағдарлы әдістер).
• Енгізілетін мәлiметтiң бақылануын ескеру.
Техникалық құралдардың құрамына және параметрлерiне қойылатын
талаптар
Жүйе IBM үйлесiмдi дербес компьютерлерде жұмыс iстеуi керек.
Минималды конфигурация:
• процессор Intel Pentium IV
және одан жоғары
• ОЗУ көлемі 1000 мб және одан
көп
• қатты дискі көлемi 40 гб және одан көп
• монитор 17 “, VGA
• манипулятор түрi тышқан
Ақпараттық және программалық үйлесiмдiкке қойылатын талаптар
Жүйе MS Windows XP SP3 және одан кейінгі басқаруда жұмыс iстеуi керек
- JRE 6.0, браузер MS Internet Explorer 7.0 және одан кейінгі, Opera 11
және одан кейінгі үлгілерінде жұмыс істейді [1].

2.2 Есептi шешудің әдiстерi

Талаптарға өткiзiлген талдау негiзінде аплеттi өндіру тапсырмасын
шешудің әдiстерiн қарап шығамыз.
Жылан ойын алаңы бойынша жылтыраусыз қозғалуы керек болса, онда аплет
жоғары сападағы анимацияны iске асыруы керек. Java-аплетте анимацияның
программалануы - ағындарды қолдануға негiзделген және әр түрлi әдiстермен
iске асырыла алады:
• Paint әдiсiнде графиканың денесіне шығару. Осы әдіс
бағдарламалаушының жұмысын жеңілдетеді, дегенмен жиi құбылмалы
суреттердiң өңделуi бағдарламаның жұмысын айтарлықтай баяулатады
және жылтыраудың пайда болуына алып келедi.
• Өзгеретін фрагменттерді жеке компоненттер түрінде іске асыру.
Бұл жағдайда программа едәуір қарапайым іске асырылады және
жылтырау пайда болмайды, бірақ өндіруші компоновка диспетчерін
қолданудан бас тартуы және компоненттерді қолмен орналастыруы
қажет. Сондай-ақ программаның жылдам орындалуы төмен.
• Paint әдісінен ары деректерді тікелей шығару. Бұл жағдайда
программа қарапайым орындалады, жылтырау байқалмайды, бірақ
экранның кезекті жаңаруында бейне жоғалады.
• Update әдісінің қайта анықталуы және paint әдісінде инкрементті
жаңарудың орындалуы. Бұл әдіс жылтырауды болдырмайды және
программа эффективтілігін біршама жоғарылатады, бірақ бұған қоса
бейненің бөліктері бір-бірін жауып қалмау керек.
• Екілік буферлеудің қолданылуы. Бұл жағдайда максималды
эффективтілікке қол жеткізуге болады және бір бірін басып
қалатын бейнелермен қиындық тумайды. Алайда екілік буферлеудің
жүзеге асырылуы қиын және үлкен жады көлемін қажет етеді [2].
Анимацияны жасау үшін екілік буферлеу әдісін қолданамыз. Екілік
буферлеу әдісінде анимациялық ағын барлық бейнелеу операциялары орындалатын
экраннан тыс бейне (пиксельдер картасы) жасайды. Негізгі ағын терезеге
бейнені толығымен шығарады.
Екілік буферлеудi iске асыру бойынша іс-әрекеттер алгоритмі келесiдей:
1. update әдiсiнiң қайта анықталуы. Қайта анықталған Update
әдiсiнде тек paint әдiсiнiң шақырылуы болуы керек. Бұл
жылытаруды болдырмауға мүмкіндік береді, ол paint-тi шақырудың
алдында экранды тазартудың нәтижесiнде сөзсіз пайда болар еді.
2. createImage әдiсiнiң шақырылуы. Бейнені шығару үшін платформа
құралдарымен жасалған терезенің қолдауы қажет болғандықтан,
сәйкес терезе жасалмағанша бейнені орналастыру мүмкін емес.
Аплеттер үшiн бұл createImage шақырылуы init әдiсiнiң денесiне
қосуға болатынын бiлдiредi, бiрақ айнымалы данасының тiкелей
инициализациясын жүзеге асыруға болмайды.
3. getGraphics әдiсi арқылы графикалық обьектіні алу. Әрдайым
Graphics контекстiн алу қажет болатын терезеде сурет салуға
қарағанда, бейнемен жұмыс кезінде онымен бір рет Graphics
обьектісін байланыстырып қоюға болады, яғни обьектке сілтемені
айнымалыға сақтап, содан соң оны қайтадан қолдану.
4. Бейнені тазарту және объекттердiң қайта суреттелуi. Бұл
операциялар сәйкес терезеде сурет салуға қарағанда едәуiр тез
орындалады.
5. Терезеде экраннан тыс бейненің бейнеленуі [3].

2.3 Аплеттің деректер құрылымының ұйымдастырылуы

Аплетті жасағанда ойын алаңынын құрылымы мынадай бірөлшемді массивтер
қатарымен беріледі
11111111111111111111111111111111111 11111
10000000000000000000000000000000000 00001
10000000000000000000000000000000000 00001
10000000000000000000000011111111111 00001
10000000000000000000000000000000001 00001
10000000000000100000000000000000001 00001
10000000000000100000000000000000001 00001
10000000000000111110000000000000001 00001
10000000000000000010000000000000001 00001
10001111100000000010000011111111111 00001
10001000100000000010000000000000000 00001
10001000100000000010000000000000000 00001
10000000000000000010000000000000000 00001
10000000000000000010000000000000000 00001
10000000111111111110000000000000001 11111
10000000000000000000000000000000000 00001
10000000000000000000000000000000000 00001
10000000000000000000000000000000000 00001
10000000000000000000000000000000000 00001
10000000000000000010000000010000000 00001
10000111110000000010000001110000000 00001
10000100000000000010000000010000000 00001
10000100000000000010000000010000000 00001
10000100000000000010000000010000000 00001
10000100000000000010000000010000000 00001
10000100000000000010000000010000000 00001
10000100000000000010000000010000000 00001
10000100000000000010000000011111100 00001
10000100000000000000000000000000100 00001
10000100000000000000000000000000100 00001
10000100000011111110000000000000100 00001
10000100000000000000000000000000100 00001
10000100000000000000000000000000100 00001
10000111100111111111111111000111100 00001
10000000000000000000000000000000000 00001
10000000000000000000000000000000000 00001
10000000000000000000000000000000000 00001
10000000000000000000000000000000000 00001
10000000000000000000000000000000000 00001
11111111111111111111111111111111111 11111

Бұл массивтер қатары екі функцияны орындайды:
• Ойын алаңынын дискретті координаталық торын береді (массив индексі
мен қатардағы символдың индексімен анықталады).
• Ойын алаңынын бос кеңістік (0-ге сәйкес) және бөгеттер (1-ге сәйкес)
элементтерінің орналасуын береді.

3 БАҒДАРЛАМАЛЫҚ ҚАМТАМАНЫ ІСКЕ АСЫРУ

Өндірілетін программалық модульдер өздігінен құжатталған болуы керек,
яғни бағдарламалардың мәтiндерiнде барлық қажеттi түсiнiктемелер болуы
керек.

Программа құжаттамасының құрамына кiруi керек:

а) есеп - түсiнiктеме;

б) қолданушыға арналған нұсқау;

в) жүйелiк администратордың жетекшілігі.

3.1 Аплет құрылымының анықталуы

Аплетті жасау барысында қолданылатын негізгі кластардың статистикалық
диаграммасы 3-ші суретте келтірілген. Бұл суретте Java пакеттерінің
интерфейсі мен кластары сары түспен ерекшеленген.

Сурет 3.1.1 – Аплеттің негізгі кластарының статистикалық диаграммасы

Snake жыланының класы жыланың тәртібі мен құрылуын инкапсулирлейді:
• Жыланның ArrayListPoint екіөлшемді нүктелер жиыны ретінде
орындалған денесі бар. Жиын реттелмеген.
• Жылан қозғалысының бағытына direction өрісі жауап береді.
• Жыланның орналастырылуы (көшуі) move әдісімен орындалған. Көшу жылан
денесінің өзгерісі ретінде орындалған: жылан денесінің бірінші
элементі жойылады және соңына жаңа элемент қосылады. Бірінші
элементтің жойылуы алдында жиында қосу керек нүктенің бар-жоғы
тексеріледі. Егер бар болса, онда өз-өзімен қиылысу болғанын
білдіреді.
• Жыланның салынуы paint әдісімен экраннан тыс буферде жүреді: жылан
денесінің барлық Point элементтері қаралады және х және у
координаталарымен айнала салынады.
• Желінген алмаға реакция ретінде жылан денесінің ұзаруы expand әдісі
арқылы орындалады.
Аплеттің негізгі класы SnakeGame ойынын инкапсулирлейді:
• snake типінің Snake өрісі – жыланға меңзегіш. Басында жылан денесінің
ұзындығы 3 нүкте болады және ойын алаңынын 2 де 2 координатасы
бойынша орналасады.
• Point типінің food өрісі – алмаға меңзегіш. Алманың координталары
кездейсоқ түрде анықталады.
• Image типінің offScreenImage өрісі – экраннан тыс буфер.
• Graphics2D типінің offScreenGraphics өрісі – экраннан тыс буферге
сәйкес графикалық обьектке меңзегіш.
• Thread типіндегі animationThread өрісі – анимациялық ағын.
• Ойын алаңы жағдайының өзеруі (жылан, алма орнының, ұпай, жыланның
қате қимыладрының санының) gameCycle әдісінде орындалады, ол тең
уақыт аралығында анимациялық ағын арқылы шексіз циклда іске қосылып
тұрады. Бұл әдіс жылан қозғалысының дұрыстығын және жыланның дұрыс
емес орналасуына жауабын тексеру логикасын құрайды.
• Экраннан тыс буферде ойын алаңынын жаңа жағдайдың суреттелуі
setImage әдісінде орындалады (жыланның жаңа орын суреттеуге жыланның
класы Snake жауап береді).
• Экрандағы бейненің суреттелуі paint әдісінде орындалады.
• Пернетақта оқиғаларын өңдеуге processKey ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Матрицаларға қолданылатын амалдарды бағдарлама түрінде жүзеге асыру
Java - объектіге бағытталған бағдарламалау тілі ортасында ойындар құрастыру
TIBOE индексі (2022) бойынша бастапқы үш бағдарламалау тілдері
Brick Breaker проект тапсырмасына есеп
Python тілі жайында
Қазіргі заманғы Qazaq Premier League (Футбол) кроссплатформалы бағдарламасын құру
Java туралы жалпы түсiнiк
Объектіге бағытталған программалаудың принциптері
C программалау ортасы туралы жалпы мәліметтер
Мобильді қосымшалардың жіктелуі
Пәндер