Talk:Meeskond "ToString"

From ICO wiki
Revision as of 11:59, 21 December 2010 by Tlebedev (talk | contribs)
Jump to navigationJump to search

1. Väga hästi mängitav mäng - seda võiks kasutada pimekirja õppimisel. Lootetavasti on tiimil jõudu seda mängu natuke "tootestada" - lisada rohkem leveleid, teha kiirus muudetavaks, erinevate keelte tugi ehk jne). Välise koodi kasutamine antud ülesandes on mõistlik (ja kenasti on kommentaarides välja toodud, et tegu ei ole omaloominguga). Kood on väga põhjalikult kommenteeritud (ilmselt algselt peamiselt tiimi liikmete vahel tehtud tööde selgitamiseks?). Projektijuhtimine on olnud paigas - põhifunktsionaalsus on nädal enne tähtaega sisuliselt valmis tehtud ja viimastel päevadel on rohkem pisiparandusi ja disaini tehtud. Tore oleks wiki lehelt täpsemalt tööjaotuse ja -ülesannete planeerimise kohta lugeda (codeplexist changesete võrreldes saab küll tegelikult ülevaate kätte)

Ivo Lõhmus - AK31 - 28.11.2010



2. Väga lahe idee! Kuigi meeskond reklaamib seda kui "tetrise-laadset" mängu, on ikkagi tegu täiesti originaalse ja iseseisva mänguideega - võiks öelda, et lihtsa, kuid geniaalse ideega. Tekitab hasarti ja tõepoolest on tuntav ka mängu loojate õilis eesmärk kasutajatele klaviatuuri tundma õpetada. Mängides tekkis ainult soov, et meeskond mängule rohkem level'eid lisaks, et lõbu kauem kestaks. Ja koodi juures häiris natuke, et kommentaarid olid segiläbi eesti ja inglise keeles. Samas jagan eelkõneleja kiitust, et välist koodi oli kasutatud oskuslikult ja häbenemata seda viidata. Igatahes jaksu ja tänud!

Anu Kuusmaa - DK21, meeskond "Terav Totris"


3. Väga huvitav mäng, võibolla peaks mõtlema selle mängu ehitamist hoopis puute tundlikule matile, et peab hüppama tähe peale matil. Samas värvid oleksid võinud olla natuke teised.

Liis Merisaar.


4. Mõte iseenesest on väga hea ja omapärane idee on tunnustamist väärt. Segadust tekitab, et peale mängu lõppu ei ole ekraanil ühtegi valikut ega juhist, mida edasi peaks tegema. Mängimiseks kasutasin klaviatuuri, kuid algne juhend tundus olevat vaid gamepad'i jaoks. Arvan, et isegi puldiga mängides, kui enne alustamist vajalikud asjad läbi loed, mida mis puhul vajutama peab, siis mängu lõppedes ei pruugi see enam meeles olla. Tahtsin proovida, kuidas mängu kaotatakse. Panin käima ja ei teinud midagi. Tulemuseks oli ülatuslik mängu võitmine 40 punktiga. Edasi arendades, võiks mängule tasemeid juurde teha, kas siis erinevate kujundite või kiiruste näol ning punktide registreerimise võimalus. Pidev tagasiside näiteks jooksva punktiarvestuse näol, oleks teretulnud. Väike viga tekkis aeg ajalt, kus üksteise peale langenud kujundite vahele jäi poole cm tühimik.

Ulvar Petmanson AK22


5. Kiiduväärt mänguidee, pole ise vähemalt sarnast asja enne näinud. Mõned asjad aga, mida oleks tahtnud näha teisiti:

  • Mängu käivitamisel kuvati juhend puldi jaoks, klaviatuuri oma aga mitte (on küll intuitiivselt aimatav)
  • Puudus pausi võimalus
  • Mängu ilule/graafikale võinuks ehk veidi enam panustada.
  • Esimesel levelil vajutasin kõiki klahve piisavalt kiiresti ja nii ei tekkinudki järgmist levelit, selleks, et edasi liikuda pidi kaotama.
  • Mängu ajal ei kuvata infot leveli, punktide jms kohta.
  • Wiki on veidi hõredalt täidetud, nt igaühe panus välja toomata.

Kui siit veidi edasi vaeva näha, siis saaks päris korraliku mängu.

Lauri Õunmaa DK21


Mängu käik on Wikipedias hästi lahti kirjutatud, põhimõtteliselt saaks sellise spetsifikatsiooni põhjal juba mängu valmis kirjutada. Ühtlasti on mängu kirjeldus ka piisav kasutusjuhend.

Projekti liikmete tööjaotus oli Wikist puudu.

Kõikidel lähtekoodi muudatustel polnud kommentaari juures. See teeb minu arvates efektiivse versioonihalduse raskeks, sest autor pole kirjeldanud oma motivatsiooni, miks mingi muudatus on tehtud. Samas minu teada ei õpetata IT Kolledžis või siis pole veel õpetatud meile versioonihaldust. Wikipedias oleva muudatuste väljavõtte oleks saanud versioonihalduse andmete abil koostada ning see oleks olnud täpsem. Juba seetõttu võinuks versioonihaldust paremini kasutada.

Lähtekoodi wikis on märgitud, et mängust võib olla abi arvuti klaviatuuri tundmaõppimisel. Olen sama meelt, et kui mäng ilusamaks disainida ning lisada heliefektid, siis saaks seda kasutada õppimisel. Mäng oleks üsna nakkav, sest pakub mängijale kiiret tagasisidet tegevuse kohta, a la nagu seda teeb Guitar Hero. Autorid on minu arvates väga innovatiivsed, sest on loonud hübriidmängu Tetrisest ja masinakirja õppeprogrammist.

Hetkel on mängul ainult 2 taset, see arv võiks olla suurem, et mängijal oleks huvitav. Taseme vahetudes võiks kiirus muutuda ja tempo tõustes muusika (või helieefektid) muutuda, samuti mängu taustapildid. Teine tase järgneb hetkel alati, aga võiks olla nii, et järgmisesse tasemesse saad vaid teatud kiirusega ja miinimumtäpsusega mängides, et kasutajal oleks motivatsiooni paremini tippima õppida .

Puudu oli punktide arvestus ekraanil, st üks põhilisi mänguosavuse tagasiside vorme oli kasutamata jäänud. Punktid öeldakse alles lõpus.

Random tähtede asemel oleks võinud kasutada sõnu, et teha mängu huvitavamaks ja sidusamaks.

Graafika on väga algeline, sh taustapilti on igavavõitu. Mängude puhul tuleks kindlasti pöörata rohkem tähelepanu visuaalidele ja helile, kui just pole tegu nt malega vms mänguga, mis nõuavad pigem kindlate reeglite järgimist kui innovatsiooni.

Mängu menüüsüsteemi võiks teha lihtsamaks ja ilusamaks. Kohati oli raske aru saada, mida mängijalt järgmisena oodatakse.

Projektis ei ole kõike ise tehtud ja nö jalgratast leiutatud, vaid on kasutatud juba olemasolevat teeki klahvivajutuste töötlemiseks. Samas see, et vajati eraldi teegi kasutamist, näitab võib-olla, et äkki polnud klahvivajutuste töötlemine mängus päris hästi läbi mõeldud. Vastav kood on võrdlemisi keerukas ning raskesti mõistetav. Põgusa koodiga tutvumise põhjal on aga keeruline midagi paremat välja pakkuda ning projekti liikmete otsus kasutada nö kolmanda partei teeki väärib kindlasti tunnustust, sest nii lahendati üks suur tehniline probleem.

Kood on objektorienteeritud, kuigi klasse võinuks olla rohkemgi. Näiteks klass produceAndMove sisaldab ainult staatilisi meetodeid. Klass on ühtaegu nii vabrik uute fLetter instantside tegemiseks kui juba loodud instantside liigutamiseks. Oleks võinud teha eraldi klassid, selge ja arusaadava nimega. Tundub et fLetter jms nimetamisel on püütud järgida mingit Hungarian notation sarnast lähenemist aga selle eesmärk jääb pealiskaudsel lugemisel arusaamatuks. Sama on private muutujate nimetamisega, kus nimede ette on lisatud alakriips, nt _numColumn, mis tekitab müra ning raskendab koodi lugemist.

Loodud on fLetter (võiks olla Letter), produceAndMove (võiks olla LetterFactory ja LetterRenderer) ning shape (võiks olla Shape) klassid. Nii et objektorienteeritud programmeerimise mõttest on aru saadud ning vastavalt sellele äratundmisele ka lahendus realiseeritud.

Probleemne ja pisut segane on koodis funktsioonide, klasside, muutujate tähistamise loogika. Näiteks klassinimi produceAndMove ei ole minu arvates päris korrektne – tuleks kasutada suurt algustähte. Näiteks võib tuua veel muutujanimesid, mis on raskesti mõistetavad: rnGen, debugL, fLetter jne. Muutujatele on lisatud tüüpiliselt kommentaarid, mis selgitavad muutuja mõtet, aga see mõte võiks selguda juba lähtekoodi lugedes ehk siis muutuja nimest endast.

Kommentaare võiks kasutada ainult siis, kui see annab selgitab koodi mõtet. Hetkel on kommentaare liigselt ja osad neist on mõttetud, nt

//debugL++

Ilmselt on tegu nö surnud koodiga. Samuti on kommentaarid läbisegi nii eesti kui inglise keeles, mis raskendab samuti natuke lugemist.

Koodistiil on väga kaootiline, esineb palju tühje ridu, puuduvaid tühikuid, vigast treppimist, kirjavigu, puuduvaid tühje ridu jms. Põhiline etteheide projektile oleks, et lähtekood on raskesti loetav ja lohakalt vormistatud. Andmetüüpe on kohati kasutatud natuke riukalikult, näiteks aktiivse mängutaseme meelespidamiseks kasutatakse tõeväärtust level2, kuigi korrektne oleks tasemeid hoida näiteks mingis nimekirjas ning aktiivse taseme indeksit täisarvu tüüpi muutujas. Taseme renderdamine

võinuks olla eraldi klassis, mitte kõik Game'i all koos. Mängitavat ala oleks võinud hoida eraldi klassis ning jätta Game klassi võimalikult vähe muutujaid. Praegu on see klass natuke “ülerahvastatud”. Ühesõnaga, objekte oleks võinud olla rohkem.

Tõeväärtust kasutatakse kohmakalt, nt: if (a) { return true; } else { return false, }

kuigi piisanuks lihtsalt

return a;

Kui lohakavõitu vormistus jms üksikasjad kõrvale jätta, siis vigu, mis takistaks mängu tööd, koodi lugemisel ega testimisel silma ei torganud. Nii et sisuliselt on mäng hästi tehtud ja väärib kiitust.

Tanel Lebdev - DK21, meeskond "codebastards"