ITI0011:Mull

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti

Tagasi kursuse lehele

Ülesande tähtaeg: 7. - 8. mai

Kirjeldus

Kirjutada graafilise kasutajaliidesega programm, mis kuvab kasutajale kujundeid, mis vahetavad oma asukohta ekraanil. Kujundile klikkides saab kasutaja/mängija punkte. Mängu erinevaid parameetreid saab seadistada eraldi menüüs.

Seda ülesannet on võimalik teha ka Androidi peal. vt #Android

Android

Androidil ülesande lahendamine annab täiendavalt 2 punkti. Ehk siis Androidil põhiosa lahendamine annab 7p jne.

Täpsustused:

  • multi-touch on lubatud - iga puudutus läheb arvesse kui klikk arvutil (ehk siis on võimalik mitu kujundit korraga eemaldada, mis võib ka mingi combo punktisumma anda)
  • kui mängija vajutab mööda, peaks selle eest saama trahvipunkte, kuna näpuga ekraanil on mängida lihtsam kui hiirega ekraanil.
  • ekraani pööramisel peaks mäng jätkuma, ehk siis kõik nupud jms peab pööramise üle elama.
  • mängu lõppedes peaks saama punktisummat jagada (shareida) mõne telefonis oleva rakendusega (näiteks gmail, facebook, twitter vms).

Põhiosa (5p)

  • Tuleb kirjutada graafilise kasutajaliidesega (GUI) programm, mis kuvab vähemalt kujundeid:
    • sinine täidetud ruut
    • punane täidetud ring
    • (lisaks võid luua oma kujundeid)
  • Korraga võib ekraanil olla rohkem kui üks sama tüüpi kujund.
  • Kujundite asukohad muutuvad juhuslikult teatud ajavahemiku möödudes (näiteks 1 sekund)
  • Kujundid ei tohi üksteisega kattuda
  • Kujundil klikates eemaldatakse see ekraanilt-
  • Juhul, kui kujund ekraanilt eemaldatakse, lisatakse juhuslikkuse alusel uus kujund.
  • Kujundil klikates saab mängija punkte (koguse võite ise määrata).
  • Mängija punktisumma kuvatakse jooksvalt GUI rakenduses.
  • Mängul on ajalimiit (näiteks 1 minut).
  • Ajalimiiti ületades saab mäng läbi.

Lisaosa (1p)

  • Kujundite asukohti muudetakse ühekaupa, mitte kõikidel korraga
    • näiteks ruudu asukoht muutub 850 ms tagant, ringi asukoht 600 ms tagant
  • Iga kujundi asukohta vahetatakse kolm korda. Peale seda kujund eemaldatakse automaatselt
    • Mida varem kujundil klikkida, seda rohkem punkte mängijale antakse. Näiteks, kui kujundit näidatakse esimest korda, saab 3X punkti. Kui kujund on korra asukohta muutunud, siis 2X punkti. Peale kahte liikumist X punkti.
    • Klikkimata ja automaatselt eemaldatud kujund annab mängijale trahvipunkte.

Lisaosa: elud (1p)

  • Mängu edenedes uue kujundi tekkimise tõenäosus suureneb.
  • Kujundite asukohad vahetuvad kiirenevas tempos.
  • Mängijal on mängu alguses 5 elu.
  • Mängija elud kuvatakse jooksvalt GUI rakenduses.
  • Kui mängija ei jõua kujundit eemaldada ja see eemaldatakse automaatselt, kaotab mängija ühe elu.
  • Kujundid on erineva suurusega (näiteks ruut on 2x väiksem kui ring) ja nende eest saab erinevalt punkte (väiksema ruudu eest saab 2x rohkem punkte).

Lisaosa: seaded (1p)

  • Programmil on lisaks mängu vaatele ka seadete vaade, kus peaks saama erinevaid parameetreid seadistada. Näiteks:
    • kujundite minimaalne arv ekraanil;
    • kujundite suurus;
    • kujundite asukoha muutumise kiirus jne.
  • Mäng peab neid seadistusi arvesse võtma.
  • Seadistuste muutmisel tuleb kontrollida, et kasutaja ei sisesta ebaadekvaatseid väärtusi (mäng ei ole enam mängitav). Võib teha ettemääratud valikud. Näiteks valida saab 3 kiiruse vahel.
  • Seadistused peaks säilima peale programmi uuestikäivitamist. Need tuleb salvestada faili.

Lisaosa: edetabel (2p)

  • Programm salvestab mängude tulemused faili.
  • Meeles hoitakse 10 parimat skoori iga seadistuse kohta.
  • Koos skooriga salvestatakse mängija nimi (saab sisestada juhul, kui mängu lõpptulemus annab koha 10 parema seas) + skoori saavutamise aeg + seadistused, millega antud skoor saavutati.
  • Mängides näidatakse lisaks mängija hetkeskoorile ka parimat skoori, võttes arvesse mängu seadistusi.
  • Skooritulemused on võimalik nullida.

Boonuspunktid

Boonuspunkt on võimalik teenida:

  • Ilusa ja kasutajasõbraliku mängu eest (1p)
  • Nauditava või põneva mängukogemuse eest (1p)