Қате суретті таңдау


Мазмұны
Кіріспе
1. Теориялық бөлім . . . 3
1. 1. Ішкі деректер құрылымын әзірлеу және бағдарламалық қосымшаның пайдаланушы интерфейсін анықтау . . . 3
1. 2. Бағдарламалық қосымшаның сипаттамасы және функционалдығы . . . 3
1. 3 ?!? . . . 5
2. Тәжірибелік бөлім . . . 8
2. 2. Қарапайым түсінік . . . 8
2. 3. Ойын программасын құру және нәтижесін алу . . . 8
Қорытынды . . . 11
КІРІСПЕ
Тақырыбы:С++ тілінде ойын құрастыру.
Жұмыстың өзектілігі:интуитивті интерфейсі бар қарапайым ойын құрастыру.
Міндеттері:
-қолмен де, автоматты түрде де бірдей емес 4 суретті көрсететін бағдарламаны
жазу және оны ыңғайлы табуды қамтамасыз ету.
- Кодтың нәтижесін алу және тестілеу.
Қазіргі уақытта компьютерлік әлемде көптеген бағдарламалау тілдері бар. Компьютерде жұмыс істейтін бағдарлама көбінесе компьютердің өзімен анықталады, өйткені бағдарламаны қолданатын адам бастапқы деректерді компьютерге клавиатурадан енгізеді, ал компьютер нәтижені экранға шығарады. Шын мәнінде, клавиатурадан немесе файлдан енгізілген бастапқы деректерді монитор экранына немесе файлға шығарылатын нәтижеге түрлендіруді компьютердің процессоры орындайды. Процессор түрлендіруді командалық бағдарламаға сәйкес орындайды. Осылайша, компьютер қандай да бір жұмысты аяқтауы үшін, осы жұмыстың орындалуын қамтамасыз ететін командалар тізбегін жасау керек немесе бағдарлама жазу керек деп айтылады.
Бағдарламалау-бұл келесі қадамдар тізбегі ретінде ұсынылуы мүмкін бағдарламаны құру (әзірлеу) процесі:
* бағдарламаға қойылатын талаптарды анықтау;
* тапсырманы шешу алгоритмін жасау немесе таңдау;
* командаларды жазу;
* оңтайландыру(кодты қысқарту, керек емес жағын жою) ;
* тестілеу.
Қазіргі уақытта бағдарламашылар Компьютерлік бағдарламалық жасақтаманы ғана емес, сонымен қатар алгоритмдік ойлауды, компьютерлік дағдыларды, сондай-ақ танымдық қызығушылықтарды, есте сақтау мен зейінді дамыту үшін әртүрлі зияткерлік ойындарды дамытады.
Компьютерлік ойындар-бұл заманауи компьютерлік құралдардың көмегімен келтірілген табиғи(қарапайым) ойын моделі.
Бағдарламалық жасақтама Rad Studio 10. 4 бағдарламалау ортасында жасалған.
1 ТЕОРИЯЛЫҚ БӨЛІМ
1. 1 Ішкі деректер құрылымын әзірлеу және бағдарламалық қосымшаның пайдаланушы интерфейсін анықтау
Пайдаланушы интерфейсі ұғымы экрандағы суретті ғана емес-үш өлшемді, анимациялық, жай сәнді дизайнда жасалған -бұл пайдаланушының жүйемен өзара әрекеттесу тәсілдерін қамтиды. Пайдаланушы интерфейсі-бұл "интерфейс элементтері" жиынтығы және олардың экранда орналасуы.
Пайдаланушы интерфейсі-бұл пайдаланушының бағдарламалық жасақтамамен өзара әрекеттесуіне әсер ете алатын бағдарламаның элементтері мен компоненттері.
Оның ішінде:
- ақпаратты көрсету құралдары, көрсетілетін ақпарат, форматтар және кодтар;
- командалық режимдер, пайдаланушы тілі-интерфейс;
- деректерді енгізу құрылғылары мен технологиялары;
- пайдаланушы мен компьютер арасындағы диалогтар, өзара әрекеттесу және транзакциялар;
- Пайдаланушының кері байланысы;
- нақты пәндік салада шешім қабылдауды қолдау;
- бағдарламаны және оған арналған құжаттаманы пайдалану тәртібі.
Бірақ бұл әзірленген бағдарламалық жасақтамада біз әр адам осы ойынды түсініп, ойнай алатындай етіп минимализм стилінде визуалды объектілермен пайдаланушы интерфейсін жасаймыз.
Бағдарламалық өнімді жобалау процесінің бастапқы кезеңдерінде осы процесті, сондай-ақ дамудың сапасы мен күрделілігін анықтайтын негізгі шешімдер қабылдау қажет. Мұндай шешімдері жатқызады:
- бағдарламалық жасақтама архитектурасын таңдау;
- пайдаланушы интерфейсінің түрін таңдау;
- әзірлеу тәсілін таңдау;
- бағдарламалау тілі мен ортасын таңдау;
"Қосымша суретті табыңыз" компьютерлік ойынының ерекшелігін ескере отырып, біз бағдарламалық жасақтама компьютерде жұмыс істейтін бір пайдаланушыға арналған бір пайдаланушының архитектурасын жасаймыз.
Алдыңғы тарауда біз визуалды нысандары бар пайдаланушы интерфейсіне тоқталдық, онда көптеген сценарийлерді жүзеге асыруға болады, олардың операциялары белгілі бір жұмыс сатысында мүмкін болатын көптеген операцияларды анықтауды қамтиды. Бағдарламалық жасақтаманы әзірлеудің объектіге бағытталған визуалды орталары мұны жасауға мүмкіндік береді. Нысанға бағытталған бағдарламалау тілі объект қабылдай алатын хабарламалар тізімі түрінде қатаң анықталған интерфейс арқылы сыртқы әлеммен өзара әрекеттесетін жабық тәуелсіз нысан ретінде объект ұғымына негізделген. Нысанның қасиеттері, мінез-құлқы және жағдайы бар. Мінез-құлық қасиеттері бірдей Нысандар сыныптарға біріктіріледі. Нысанға бағытталған тілдегі бағдарлама-бұл сынып сипаттамаларының жиынтығы. Сыныптар, өз кезегінде, оларды құрайтын объектілердің қасиеттері мен мінез-құлқының сипаттамасын білдіреді. Сипаттар басқа, әдетте, қарапайым нысандармен ұсынылады. Мінез-құлық хабар алмасу арқылы сипатталады.
Нысанға бағытталған тілдерге келесі сипаттамалар тән:
* дерексіз деректер түрлері;
* алдыңғы жағын іске асыруды жасыру (инкапсуляция) ;
* объектілердің қасиеттері мен мінез-құлқын мұрагерлік;
* атауды мәнмен динамикалық байланыстыру;
* хабарлама атауларының полиморфизмі;
* жадты автоматты басқару.
1. 2 Бағдарламалық қосымшаның сипаттамасы және функционалдығы
Оқиғаларды бағдарламалау мен Объектілік тәсілді қолдануды қамтитын визуалды нысандары бар интерфейс таңдалғандықтан, Visial C++, Borland Delphi 7. 0, Borland C++ Builder, Rad Studio 10. 4 және оған ұқсастар тапсырманы орындау үшін ең қолайлы заманауи визуалды бағдарламалау орталары болып саналады.
Бүгінгі таңда осы орталардың арасында айырмашылықтар бар: Microsoft корпорациясының визуалды орталары "Windows астында"бағдарламалаудың төменгі деңгейін қамтамасыз етеді. Бұл олардың артықшылығы мен кемшілігі. Артықшылығы - "стандартты емес жағдайдың" пайда болу ықтималдығы төмендейтіндіктен, яғни компоненттер кітапханасын жасаушылар ұсынбаған жағдай, бірақ кемшілігі-бұл Delphi, C++ Builder және Rad Studio-мен жұмыс істейтін бағдарламашыдан құтылған "күнделікті" жұмыс бағдарламашысын айтарлықтай жүктейді.
Бұл ойынды дамыту үшін біз RAD Studio әмбебап бағдарламалау ортасына тоқталамыз.
Rad Studio-бірнеше маңызды технологиялардың тіркесімі:
* машина кодына жоғары өнімді компилятор;
* нысанға бағытталған модель компоненті;
* бағдарламалық прототиптерден қосымшаларды визуалды (және, демек, жылдам) құру. - бұл бірнеше маңызды технологиялардың тіркесімі:
* машина кодына жоғары өнімді компилятор;
* нысанға бағытталған модель компоненті;
* бағдарламалық прототиптерден қосымшаларды визуалды (және, демек, жылдам) құру.
Менің ойымша, Rad Studio қарапайым және түсінікті. Тілдің негізгі құрылымдары бағдарламада айқын көрінеді, бұл жазбаша кодтың жақсы жазылуына ықпал етеді. Rad Studio графикалық интерфейсі өте жақсы ойластырылған және даму ортасы тек даму ортасының өзі автоматты түрде жасайтын бағдарламаның негізгі бөлігін жасырып, жұмыс істеу керек код бөліктеріне қол жеткізуге мүмкіндік береді.
Жоғарыда айтылғандардың барлығы объектіге-бағытталған бағдарламалау технологиясын, C++ builder тілін, Rad Studio 10. 4 ортасын таңдауды анықтады.
Әзірленген бағдарламалық қосымшада біз қолдандық:
1. TForm класы Rad Studio-ның ең маңызды құрамдас бөлігі болып табылады, ол осы жүйенің қосымшаларды жобалау және әзірлеу бойынша барлық жұмысына негізделген. Форма (TForm класы) оның жұмыс істеуінің ең күрделі алгоритмдерін оңай конфигурациялауға және ұйымдастыруға мүмкіндік беретін қасиеттердің, әдістер мен оқиғалардың кең жиынтығын қамтиды. Барлық қасиеттер объект инспекторында сипатталған.
2. TPanel-панель. TPanel компоненті-бұл жалпы мақсаттағы контейнер. Оның тақырыбы жоқ, сондықтан элементтерді функционалды топтау үшін ыңғайлы емес. Оның Caption қасиеті мәтіндік жол ретінде көрсетіледі және оны хабарламаларды шығару үшін пайдалануға болады. Бұл сыныптың компоненттері көбінесе осы терезенің өлшемдерінің өзгеруіне қарамастан, терезенің бір жағында орналасқан көршілес компоненттерін орналастыру үшін қалыпқа орналастырылады.
3. TLabel-белгі. TLabel класс компоненті әр түрлі мәтіндік жазулар түрінде орналастыруға арналған . Ол үшін Caption компонентінің орталық қасиеті қызмет етеді. Font қасиетін қолдана отырып, сіз жазудың түрін әртараптандыруыңызға(өзгертуге) болады. АutоSize логикалық қасиетін қолдана отырып, құрамдас бөлікке Caption мәтінін орнатылған штрифті ескере отырып толығымен көрсету үшін өлшемдерін автоматты түрде өзгертуге рұқсат ете аласыз.
4. TButton-батырма. TButton компоненттері бағдарламаларды басқару үшін кеңінен қолданылады.
TButton әрекет-жасау терезесінің параметрлерінде оның әрекетін басқару үшін бірнеше қасиеттерді ұсынады. (onClick, Caption, onMouseMove және т. б. ) Пайдаланушылар әрекеттерді бастау үшін батырмаларды басқару элементтерін таңдайды.
Пайдаланушы басқару элементін(Button) басқан кезде жауап беру үшін OnClick оқиға өңдегін пайдаланыңыз.
Әдетте OnClick пайдаланушы тышқанның сол жақ батырмасын басып, басқару элементіне апарған кезде пайда болады. Бұл оқиға келесі жағдайларда да орын алуы мүмкін:
-Пайдаланушы SPACE(ПРОБЕЛ) батырмасын басқан кезде;
-Пайдаланушы ENTER батырмасын басқан кезде.
5. TTimer-уақыт. Таймер компоненті бағдарламада уақыт аралықтарын орнатады, содан кейін бағдарламаланған оқиға басталады, мысалы, бағдарлама терезесін жабу немесе басқа терезеге ауысу.
Timer компонентіне уақыт беру керек болса, онда "OnTimer"оқиға қасиетіне өтетін уақытты миллисекундтарда жазу керек.
Интервал OnTimer оқиғасының қаншалықты жиі болатынын анықтайды. Көрсетілген аралық өткен сайын OnTimer оқиғасы орын алады. Інсіз келісім бойынша мәні-1000 единица(1000 миллисекунд=1 секунд) .
6. TImage графикалық кескінді көрсетеді. Графикалық кескінді пішінде көрсету үшін суретті пайдаланыңыз. Сурет сипатындағы сурет нысанын нақты нүктелік кескінді, белгішені, метафайлды немесе TImage көрсететін басқа графикалық нысанды көрсету үшін пайдаланыңыз. Кескіннің қасиеттері мен әдістерін файлдан суретті жүктеу, суретті уақыт аралығында тазарту және басқа басқару үшін кескінді тағайындау сияқты нәрселер үшін пайдалануға болады.
Stretch суретті басқару элементінің шекараларына дәл сәйкес келетін етіп өзгерту керек пе, жоқ па, соны көрсетеді. [ 1 ]
Суреттің өлшемін және кескін басқару формасын өзгерту үшін Strech басқару элементінің мәнін true мәніне өзгерту керек. Суретті басқару элементінің өлшемі өзгерген кезде кескіннің өлшемі де өзгереді(Мысалы 250*400 өлшемді image элементіне 30*40 өлшемді суретті қойған кезде суреттің ішіндегі текст оқылынбайтын болады) . Созылу кескіннің биіктігі мен енін тәуелсіз өзгертеді. Сонымен, масштабтаудың қарапайым өзгеруінен айырмашылығы, егер кескін басқару элементі кескінмен бірдей пішінге ие болмаса, созылу суретті оқылынбайтындай етілуі мүмкін. Ал егер суретті емес, image элементін өзгерткіңіз келсе, онда autosize немесе proportional элементінің мәнін true мәніне өзгерту керек.
Бағдарламаны іске қосқаннан кейін TButton көмегімен іске асырылған "Start" батырмасы бар негізгі форма пайдаланушының алдында пайда болады.
1. 3 ?!?(История)
Компьютерлік ойындардың тарихы 1940-1950 жылдары, академиялық ортада қарапайым ойындар мен модельдеу дамыған кезде басталады. Компьютерлік ойындар ұзақ уақыт бойы танымал болған жоқ, тек 1970-1980 жылдары аркада автоматтары, ойын консольдері және үйлік компьютерлері көпшілікке пайда болған кезде, компьютерлік ойындар танымал мәдениеттің(поп-культура) бір бөлігі болды. 1960-1970 жылдары АҚШ-тың университеттік және ғылыми ортасында әртүрлі ойындар - оқу бағдарламалары, бағдарламалау жаттығулары және студенттердің көңіл көтеруі үшін құрылып жатты.
1966 жылы АҚШ Қорғаныс министрлігінің мердігері(подрядчик) Sanders Associates компаниясында жұмыс істеген американдық инженер Ральф Баер өз бастамасымен ойындарға арналған "телевизиялық құрылғы" жобасымен жұмыс істей бастады, оны Channel LP (ағылш. - "let's play") деп атаған [
2
] . Sanders Associates-тің ірі теледидар өндірушілері арасында серіктес(партнер) табуға алғашқы әрекеттері сәтсіз болғанына қарамастан, 1971 жылы Баер мен оның қызметкерлері Magnavox компанияларымен келісімшартқа отырды; құрылғының прототипі, сол кезде Brown Box[1 сурет] атымен белгілі бір коммерциялық өнімге айналды-"Magnavox Odyssey" атты алғашқы үй
ойын консолі
[
3
], [2 сурет] .
1 сурет. "Қоңыр қорап" - Ральф Баер жасаған теледидарға арналған ойын консолінің прототипі.
2 сурет. Коммерциялық версиясы, Magnavox Odyssey консолі
1972 жылы Atari компаниясы, Аллан Алкорн инженерімен жасалған Pong [3 сурет] аркада автоматын шығарды - бұл Computer Space-пен[4 сурет] салыстырғанда әлдеқайда қарапайым және арзан жүйе теннис ойынына еліктеді және бастапқыда екі ойыншыға арналған. Atari аркада автоматтарының ірі өндірушілерінің ешқайсысымен серіктестік туралы келісе алмады және Wells Fargo-дан(банк) несие(кредит) алып, автоматты өзі шығара бастады-автомат үлкен жетістікке жетті[
2
] .
3 сурет. Atari компаниясы жасаған Pong автоматы.
4 сурет. Nutting Associates компаниясы жасаған Computer Space автоматы.
2 ТӘЖІРИБЕЛІК БӨЛІМ
2. 2. Қарапайым түсінік
Бағдарламаның принципі өте қарапайым. Дұрыс суретті басқан кезде-1 ұпай беру және ойынның келесі деңгейіне көшіру, ал дұрыс емес суреттерді басқан кезде-ұпайсыз келесідеңгейге көшу. Ойын аяқталғаннан кейін пайдаланушыға ойын аяқталған туралы терезе көрсету.
Пайдаланушы келесі әрекеттерді орындай алады:
1. Ойынды бастау.
2. Қате суретті таңдау.
3. Ойыннан шығу.
2. 3 Тестілеуші программа құру және нәтижесін алу
Программаның блок-схемасы:
Иә Жоқ
Программаның коды:
#include <vcl. h>
#pragma hdrstop
#include "Unit1. h"
//
#pragma package(smart_init)
#pragma resource "*. dfm"
TForm1 *Form1;
AnsiString pic_path[8] ={"kit. bmp", "kit. bmp", "kit. bmp", "dog. bmp",
"tel. bmp", "dog. bmp", "dog. bmp", "dog. bmp"};
int answers[8] ={0, 0, 0, 1, 1, 0, 0, 0};
int k = 0;
int score = 0;
int CountPic = 4;
//
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::NextLevel()
{
if(k<=CountPic)
{
for(int i=1; i<=CountPic; i++)
{
TImage* im = (TImage*) FindComponent("Image"+IntToStr(i) ) ;
im->Picture->LoadFromFile("pic\\"+pic_path[k+i-1] ) ;
im->Tag = answers[k+i-1] ;
}
k+=CountPic;
}
else
{
Timer1->Enabled = false;
ShowMessage("Ойын бітті!") ;
for(int i=1; i<=CountPic; i++)
{
TImage* im = (TImage*) FindComponent("Image"+IntToStr(i) ) ;
im->Visible= false;
}
}
}
//
void __fastcall TForm1::Button1Click(TObject *Sender)
{
NextLevel() ;
Button1->Caption = "Келесі";
Timer1->Enabled = true;
}
//
void __fastcall TForm1::Image1Click(TObject *Sender)
{
score += ((TImage*) Sender) ->Tag;
Label1->Caption = "Upai = "+IntToStr(score) ;
NextLevel() ;
Timer1->Enabled = false;
Timer1->Enabled = true;
}
//
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
NextLevel() ;
}
Ойынды жасау түсінігі:
Ең бірінші 4 Image ашамыз[5 сурет]
5 сурет. Төрт Image ашу.
AnsiString массивын жариялаймыз, программа орналасқан жердегі суреттерді жүктеу үшін [6 сурет]
6 сурет. AnsiString массиввын қосу және суреттерді жүктеу.
Суреттердің сақталған жері:[7 сурет]
7 сурет. Суреттердің орналасқан жері.
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

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