Увод:
Па, ево поста који следи први диоУ овом ћемо се усредсредити на руковање подацима (питањима), и започињемо са логичким делом игре, у следећем ћемо завршити логику и применити време и 3 опције.
База података:
За базу података коју ћемо користити У1дб, која је база података која податке чува у формату ЈСОН.
Прво да видимо које податке треба да сачувамо, имамо 1 питање (осим текста питања било би лепо имати и идентификатор), са 4 могућа одговора, од којих само 1 може бити, дакле документ у ЈСОН једно питање би требало да буде:
{ "ид": 1, "куестион": " биће дев.desdelinux.нет ", "одговори" : { р1: "да", р2: "не", р3: "не знам", р4: "ово је лажан одговор" }, "тачно": 3 }
Као што видимо структурирани смо у формату ЈСОН где имамо идентификатор, низ са питањем и р1, р2 који представљају одговор 1 и одговор 2, коначно имамо који је од одговора тачан.
Погледајмо мало како У1дб ради, прва ствар коју морамо учинити да бисмо користили У1дб је увоз модула:
import U1db 1.0 as U1db
Изјављујемо базу података:
U1db.Database {
id: aDatabase
path: "aU1DbDatabase"
}
Базе података ће бити сачуване као аУ1ДбДатабасе.у1дб, сада креирамо документ:
U1db.Document {
id: aDocument
database: aDatabase
docId: 'helloworld'
create: true
defaults: { "hello": "Hello World!" }
}
Тамо где можемо видети формат {«здраво»: «нешто»}, за извршавање упита, или за додавање података, прибављање података, брисање итд. Имамо елемент У1дб.Куери.
Идемо на нашу апликацију и креирамо нашу базу података, као што смо видели, дефинишемо базу података:
У1дб.Датабасе {ид: дб питања; путања: "куестионсдб.у1дб"}
У реду, ставимо неке подразумеване елементе у документ базе података куестионсдб:
У1дб.Доцумент { ид: аДоцумент база података: куестионсдб доцИд: 'питања' цреате: труе дефаултс: { "куестионс": [ {"куестион":"Биће дев.desdelinux.нет ?", "р1":"да", "р2":"не", "р3":"нос", "р4":"лажан одговор", "тачно": "3" }, {"питање ":"Ко је Хагрид (Хари Потер)?", "р1":"Заменик директора школе", "р2":"Ловочувар", "р3":"Учитељ трансформације", "р4":" Префект", "тачно": "2"}, {"питање":"Који је главни град Исланда?", "р1":"Амстердам", "р2":"Рејкјавик", "р3":" Тбилиси ", "р4":"Алмати", "исправно": "2"} ] } }
Свестан сам да се код не приказује како би требало, али ако погледамо видећемо да имамо елемент честа, што са »[]» прецизирамо да може бити неколико (нису статични) елемената; у овом случају подразумевано ћемо имати 4, 4 питања са одговарајућим одговорима.
Да бисте добили елементе документа ЈСОН, можемо одредити идентификатор документа који смо креирали (који је документ). Замислимо да желимо да добијемо текст првог питања:
аДоцумент.цонтентс.куестионс [0] .куестион
Ова линија кода нам враћа садржај питања документа аДоцумент, елемента 0 (први у индексу), а то је: «Биће дев.desdelinux.нет?" Ако у индекс ставимо број 1, онда је то друго питање.
Програмирање логике игре
Е, сад, кад знамо како да рукујемо базом података у којој смо сачували питања, програмирајмо логику игре. Прво ћемо створити датотеку JavaScript (.јс): Додај нову -> Кт -> Јс датотеку. Зваћу га логиц.јс.
У датотеци ћемо створити неколико функција за увоз јс датотеке у наш кмл документ:
увези „логица.јс“ као Логица
Повезујемо име Логица, па кад желимо да позовемо функцију, то ћемо учинити као Логица.фунцтион (), као да је реч о објекту који има своје методе.
За сада, како пост не би постао предуг, оставићемо време питања и опције за касније, концентрисаћемо се на питања и тачке, да видимо функцију помоћу које ћемо прећи са питање:
функција нектКуестион (нум) {// тиме = 0 куестион.тект = аДоцумент.цонтентс.куестионс [нум] .куестион; респ1.тект = аДоцумент.цонтентс.куестионс [нум] .р1; респ2.тект = аДоцумент.цонтентс.куестионс [нум] .р2; респ3.тект = аДоцумент.цонтентс.куестионс [нум] .р3; респ4.тект = аДоцумент.цонтентс.куестионс [нум] .р4; }
Као што видимо, број питања прослеђујемо тамо где се налазимо као аргумент и одавде ставља одговоре на дугмад и ознаку питања. Погледајмо сада да потврдимо да ли је изабрани одговор тачан:
погодак функције (нум, опција) {вар хит = фалсе; вар нум_цоррецт = аДоцумент.цонтентс.куестионс [нум] .цоррецт; иф (опција == тачан_број) хит = труе; повратни ударац; }
Код говори сам за себе, у случају да је изабрана опција иста као она коју пружа база података, тада ће бити тачно, иначе неће. Сада када смо дефинисали ове функције, применићемо их у нашем кмл коду.
Пре свега ћемо додати променљиву која ће бити она која контролише у којем смо питању, назваћемо је нум; Такође ћемо имати још три променљиве: погоци, промашаји и поени.
својство инт број: 0 својство инт нфаултс: 0 својство инт рођења: 0 својство инт нпоинтс: 0
У почетку су сви на 0.
Сада додајемо онЦлицк на сва дугмад за одговоре. онЦлицк, како му само име каже, догађај је који ће се десити када се кликне на дугме:
Дугме {ид: респ1 текст: "Одговор 1" сидра.хоризонталЦентер: надређени.хоризонталЦентер ширина: надређена ширина - 20 онЦлицкед: {иф (Логиц.цертаин (нум, 1)) {нум = нум + 1; Логиц.нектКуестион (нум) нпоинтс = нпоинтс + 50 рођених = рођених + 1} елсе {нфаултс = нфаултс + 1}}}
Видимо да када кликнете на дугме, оно проверава да ли је тачно или не, ако јесте, додаје бодове и предаје питање, у супротном остаје један живот.
На крају ћемо извршити учитавање првог питања када се учита компонента Паге:
Страница {ид: пагеГаме Цомпонент.онЦомплетед: {Логиц.нектПрегунта (0)}
Да видимо како је испало:
Пратим кораке и све функционише. Само да бих сарађивао, кажем следеће:
* Не мења вредност погодака и промашаја. То морате додати сваком дугмету у догађају клика.
* И то у реду:
иф (Логиц.ацерто (нум, 1)) {
промените 1 на број дугмета / одговора.
лолбимбо, ваш допринос ми је занимљив. Надам се новим тутоу !!!
Хвала што делите.
Свиђа ми се што сте коментарисали ове тачке јер у објави нисам јасно ставио до знања, шта више, не сећам се поена, успеха и неуспеха, ако је погледате видећете да када притиснемо дугме, сабиремо бодове успеха ... али се они не одражавају у Ознаци, зато је морамо ставити у својство текста да би се приказале тачке:
Ознака {
ид: неуспеси
текст: «Кварови:» + ннеисправности
боја црвена"
}
Ознака {
ид: хитс
текст: «Хитови:» + рођ
}
Ознака {
ид: бодови
текст: «Поени:» + нпоена
фонтСизе: "средњи"
}
Такође ћу то појаснити у 3. делу.