The Quest
TheQuest este o "aventură a cunoaşterii" pe 20 de niveluri. Fiecare nivel are o întrebare şi un răspuns la acea întrebare. Participantul poate trece la nivelul următor răspunzând la întrebarea respectivă.
Specificaţii
Niveluri
Fiecare participant are asociat în baza de date nivelul său curent în quest. Orice participant va începe de la nivelul 1, putând ajunge la nivelul 21 (nivelul 21 înseamnă quest încheiat). Pe măsura progresului în quest, se actualizează în baza de date nivelul său curent în quest.
Trecerea de fiecare nivel din quest înseamnă acumularea de puncte. Trecerea de primul nivel din quest înseamnă acumularea unui punct. Trecerea de al doilea nivel din quest înseamnă acumularea a încă 2 puncte. Trecerea de ultimul nivel (20), înseamnă acumularea a încă 20 de puncte. Aceste puncte vor fi adăugate la punctele obţinute din UqChallenge, respectiv QuestionOfTheDay.
Ca lucrurile să se menţină distractive, se va asocia unui nivel de valoare în quest. Vor exista 7 niveluri (RD: cărora putem să le asociem şi nişte nume), care să descrie avansul unui participant în quest, astfel:
- până la trecerea de nivelul 4 de quest (exclusiv) (nivelurile 1, 2, 3): nivelul 1 de quest-user
- până la trecerea de nivelul 7 de quest (exclusiv) (nivelurile 4, 5, 6): nivelul 2 de quest-user
- până la trecerea de nivelul 10 de quest (exclusiv) (nivelurile 7, 8, 9): nivelul 3 de quest-user
- până la trecerea de nivelul 13 de quest (exclusiv) (nivelurile 10, 11, 12): nivelul 4 de quest-user
- până la trecerea de nivelul 16 de quest (exclusiv) (nivelurile 13, 14, 15): nivelul 5 de quest-user
- până la trecerea de nivelul 19 de quest (exclusiv) (nivelurile 16, 17, 18): nivelul 6 de quest-user
- până la trecerea încheierea quest-ului (exclusiv) (nivelurile 19, 20, 21): nivelul 7 de quest-user
RD: Propunerile mele de denumire pentru cele 7 niveluri de quest-user sunt (eventual cu o wallpaper din Warcraft 3 pentru tipul de rasă - completată în baza de date :-P):
- nivelul 1 - Peon, Acolyte, Wisp, Peasant
- nivelul 2 - Troll, Ghoul, Archer, Footman
- nivelul 3 - Grunt, Crypt Fiend, Huntress, Rifleman
- nivelul 4 - Shaman, Banshee, Hippogryph, Sorceress
- nivelul 5 - Wyvern, Abomination, Druid of the Claw, Gryphon
- nivelul 6 - Tauren, Frost Wyrm, Chimaera, Knight
- nivelul 7 - Blademaster, Lich, Demon Hunter, Paladin
RD': e doar o propunere; poate fi îmbunătaţită pentru a plăcea tututor ( cred că aceste niveluri neglijează cei doi cromozomi X :-) )
Întrebări
Fiecare nivel din quest are asociat o întrebare care este afişată prin intermediul unei pagini web. Pagina va conţine nivelul actual, întrebarea, un text area unde se poate introduce răspunsul şi un buton de submit. La submiterea răspunsului, se compară literal cu cel existent în baza de date şi, dacă este corect, se trece la următorul nivel din quest (adică următoarea pagină web). Dacă răspunsul nu este corect, utilizatorul este avertizat că nu a răspuns corect şi pagina web rămâne aceeaşi. Pot exista oricâte încercări de răspuns la o întrebare de quest. RD: Cred că ar trebui să le permitem opţiunea să se uite şi la nivelurile anterioare (eventual nişte butoane de next/previous puse pe pagină).
Nu există un pool de întrebări de quest. Există 20 de întrebări pentru fiecare nivel. Fiecare participant va avea aceeaşi întrebare de quest. Dacă ei vor să comunice între ei, foarte bine. Eu aş fi însă stresat să văd că am ajuns Tauren şi îi mai ajut pe încă doi să aibă acelaşi nivel ca al meu.
Baza de date
Baza de date ar trebui sa ofere asocierea între participant, şi nivelul actual în quest. Nivelul quest-user poate fi dedus. De asemenea, trebuie să existe o tabelă care să conţină cele 20 de întrebări de quest împreună cu răspunsurile asociate. Comparaţia răspunsului oferit de participant şi cel existent în baza de date se va face literal. Întrebările vor fi de aşa natură încât ponderea invalidării unui răspuns din cauza unor spaţii în plus sau în minus să fie cât mai mică.
Ser: De ce trebuie să ţinem minte în baza de date şi nivelul în quest şi nivelul quest-user din moment ce ultimul poate fi dedus oricând din nivelul în quest? Si de ce să ne complicăm cu o bază de date pentru întrebări, mai bine folosim un XML.
RD: Da, am corectat chestia cu nivelul de user-quest. Nu-mi dau seama daca e mai bine XML sau baza de date. Avantajul bazei de date e că există deja şi se lucrează relativ uşor. Avantajul XML este că se poate foarte uşor schimba o întrebare, dar trebuie folosită o bibliotecă specializată pentru parsing.
Ser: Merge şi cu PHP simplu. Oricum noi folosim deja extensia SimpleXML în mai multe locuri iar extensia vine by default odată cu PHP5.
Integrarea cu UqChallenge
În configuraţia de punctare, o provocare înseamnă posibilitatea câştigării sau pierderii a 3 puncte. Totuşi, o provocare va ţine cont de nivelul actual al unui utilizator în quest (nivelul quest-user) astfel:
- dacă cel care a câştigat are nivel mai mic sau egal decat cel care a pierdut, se câştigă 3p
- dacă cel care a câştigat are grad mai mare decat cel a pierdut, se câştigă (M - 1 - m) * 0.5p (M este nivelul mai mare şi m este nivelul mai mic)
- în caz de înfrângere, se pierd tot timpul 3 puncte
Spus altfel, este dezavantajos sa provoci pe cineva de nivel mai mic. În cazul în care acest lucru se întâmplă şi cel de nivel mai mare câştigă, per ansamblu se pierd puncte; invingătorul câştigă doar o parte din puncte, iar învinsul pierde tot timpul 3 puncte. În felul acesta vom stimula competiţiile de acelaşi nivel. AE: Din câte înţeleg, o provocare/acceptare a provocării va necesita acum existenţa în cont a cel puţin 3 puncte pe care le poţi pierde. Dacă ai doar 3 puncte, atunci nu poţi accepta decât o provocare, moment în care cele 3 puncte sunt retrase din cont... ceva gen ePayment;)). În funcţie de rezultat, le primeşti sau nu înapoi...
Persoane care lucrează la TheQuest
Următoarele persoane lucează la TheQuest:
- Alex Eftimie
- Vali Priescu
