Креирање апликације за Убунту Тоуцх [КМЛ] - [2. део]

Увод:

Па, ево поста који следи први диоУ овом ћемо се усредсредити на руковање подацима (питањима), и започињемо са логичким делом игре, у следећем ћемо завршити логику и применити време и 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. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Габиелус дијо

    Пратим кораке и све функционише. Само да бих сарађивао, кажем следеће:
    * Не мења вредност погодака и промашаја. То морате додати сваком дугмету у догађају клика.
    * И то у реду:
    иф (Логиц.ацерто (нум, 1)) {
    промените 1 на број дугмета / одговора.

    лолбимбо, ваш допринос ми је занимљив. Надам се новим тутоу !!!

    Хвала што делите.

    1.    лолбимбо дијо

      Свиђа ми се што сте коментарисали ове тачке јер у објави нисам јасно ставио до знања, шта више, не сећам се поена, успеха и неуспеха, ако је погледате видећете да када притиснемо дугме, сабиремо бодове успеха ... али се они не одражавају у Ознаци, зато је морамо ставити у својство текста да би се приказале тачке:

      Ознака {
      ид: неуспеси
      текст: «Кварови:» + ннеисправности
      боја црвена"
      }

      Ознака {
      ид: хитс
      текст: «Хитови:» + рођ
      }

      Ознака {
      ид: бодови
      текст: «Поени:» + нпоена
      фонтСизе: "средњи"
      }

      Такође ћу то појаснити у 3. делу.