I LOVE MOLDOVA, sau cum am ajuns pe locul 2

DEZVALUIRE

   Iarna trecuta (2011-2012), pe pagina oficiala de facebook a companiei MoldCell, aparuse un joc foarte si foarte bun, I love Moldova. Chestia interesanta e ca acest joc iti verifica cunostintele despre tara ta si totoadata iti da si lucruri noi pe care nu le-ai stiut. Deci 50% din timpul de munca era ocupat. Apoi, a aparut versiunea 2, ceva mai grea ca 1 cu mai multe localuri si locuri frumoase din Md. Odata cu aparitia acestei versiuni, cei de la Moldcell au pus si o conditie destul de atragatoare: “pana pe data de XX.XX.2012 cine va fi pe locul 1, va castiga un telefon “numaistiucemodel-17G” . Jocul devine si mai captivant 🙂

Cei ce cunosc jocul, stiu ca tot ce trebuie sa faci, la fiecare runda e sa dai click pe harta Moldovei unde se afla localitatea din intrebare.Cam pe toate localitatile, Raioanele, locurile pitoresti, le-am invatat pederost, eram printre primii, pana cand am vazut ca un jucator a luat prea multe puncte, mai mult decat un om normal ar lua, cu siguranta a folosit un bot sau a prins protocolul. atunci mi-a venit ideea sa-mi incerc si eu puterile in programare, n-am nimic de pierdut, ba dinpotriva, de castigat.

ET1: Ce plusuri avem?

Harta statica, culori neschimbatoare, jocul singur iti arata unde trebuia sa dai click in caz de eroare.

Deci de ce ar trebui sa tin in minte toate coordonatele pe cand am calculatorul in fata?! zis si facut. Am gasit un nou limbaj de programare (nou, pentru mine), care foarte bine se descurca cu coordonarea mousului pe ecran: http://www.autoitscript.com

ET2: algoritmul

avem nevoie de baza de date unde sa tinem un oarecare hash al localitatii +  coordonata x si y ale monitorului unde se gaseste localitatea. Baza o putem tine intrun simplu fisier txt. delimitator am folosit “spatiul”. Exemplu:

hhhhhhhhhhhhhhhh…hhhh    x     y

cam asa ceva

112345479314369235743657065324669043   50    200

Inainte de a citi, trebuie sa avem de unde, n-am gasit alta modalitate de a completa baza decat manual, in timpul jocului.

ET3: scriptul

avem nevoie de 4 taste  care tastandule –  ne vor ajuta sa citim sau sa scriem datele + mousul, am ales

R – pentru a citi din fisier (DB),

E – daca la citire nu am gasit nimic, formam “hash-ul” localitatei si-l memoram,

W- inscriem in baza hash-ul + coordonatele x si y ale mousului,

ESC – iesire din program

pt download, click aici

Practic, daca-as fi cel mai rapid om din lume cu cea mai aspra memorie, n-as lua numarul de puncte pe care l-am luat.

Matematic, maximum e 104750 de puncte, cateva milisecunde se fura la render-ul jocului, odata cu timpul – se scad punctele, la 5 milisecunde pierdute pentru render = -5 puncte,

deci cel mai mare “superman” ar lua 104745, si nici intr-un caz nu se poate de acumulat 104750 cum a luat cel de pe locul 1.