Ötökkämatikka
Informaatioverkostot, Studio1
Ohjelmointiprojekti
Maria-Karoliina Tiuraniemi
4.1.2009

Alkuun

    PROJEKTISUUNNITELMA 1.1, päivittyvä versio

1. Yleiskuvaus

Ötökkämatikka on matematiikkaohjelma, joka on tarkoitettu lapsille noin kolmivuotiaasta ylöspäin. Pääasiallisina testihenkilöinä ovat omat lapset (iät koodin kirjoittamisen aikaan 3v 9kk ja 1v 9kk). Ohjelman ajatus on visualisoida yksinkertaisia laskutoimituksia, opettaa laskemaan lukumääriä, tutustuttaa yhteenlaskun perusteisiin ja palkita käyttäjää hauskoilla interaktiivisilla animaatioilla. Pääpaino on laskujen ratkaisemisessa, animaatiot ovat bonusta.

Alun dialogissa valitaan taso mahdollisimman helposti niin että lapsi osaa sen itsekin tehdä. Tätä projektia varten tasoja tehdään kaksi: Kuinka monta ja Laske yhteen. On kuitenkin mahdollista myöhemmin lisätä tasoja lapsen ymmärryksen kehittyessä.

    1. taso: Kuinka monta ötökkää näet kuvassa?
   
Jos käyttäjä valitsee väärän vaihtoehdon, numerolaatikon väri muuttuu hetkellisesti ja käyttäjä kuulee äänipalautteen. Samantien saa yrittää toista vaihtoehtoa. Kun lapsi valitsee oikean vaihtoehdon, siitä tulee samaten sekä visuaalinen että äänipalaute. Sen lisäksi oikean vastauksen jälkeen ötökät lähtevät liikkeelle, hiiren kursori muuttuu (tai käyttöön tulee esim. haavi tms. työkalu jota kontrolloidaan hiirellä). Käyttäjä voi työkalulla töniä rauhallisesti liikkuvia ötököitä ohjelman ruudun sisälle niin, että ne pysyvät mahdollisimman pitkään ruudun sisällä. Kun kaikki ötökät ovat poistuneet näkyvistä, siirrytään seuraavaan laskutoimitukseen.

    2. taso : Laske ötökät yhteen!
   
Toisella tasolla toiminta on periaatteessa sama kuin ensimmäisessä, mutta tarkoitus olisi oppia tuntemaan samalla myös numeroita ja ymmärtää yhteenlaskun perusteet. Lapsi voi edelleen laskea vain näkyvissä olevia ötököitä ja vastata siihen, mutta visuaalisessa ilmeessä erotellaan selkeästi minkä verran ötököitä mihinkin numeroon kuuluu. Visuaaliset ja äänipalautteet toimivat samoin kuin ensimmäisellä tasolla, lopun oikeasta vastauksesta tulee samanlainen animaatio.

    Vaikeustason valinta

Ohjelmaan tulee erillinen vaikeustason valinta, joka on tarkoitettu aikuisen käytettäväksi. Se avautuu menusta omaksi ikkunakseen. Määritellään ohjelmakohtainen maksimi ja käyttäjä saa asettaa itse oman maksiminsa.

Toinen säätö on animaation nopeudessa. Lapsen käden ja silmän yhteistoiminnan kehittyessä ja hiiren käytön opettelun parantuessa voidaan kasvattaa ötököiden liikkumisnopeutta.

    Tuloslista - poistettu

2. Tekninen toteutus

Ohjelmaa koodatessa lähden liikkeelle ensin peruslogiikasta.

  • Ohjelman molemmat tasot on ensin saatava toimimaan tekstipohjaisesti. - DONE! 18.12.2008
  • Sen jälkeen ohjelmoidaan GUI perustasolla, sen viilausta voidaan jatkaa loppupuolella jos jää aikaa.
  • Sen jälkeen tehdään animaatio eli ötököiden satunnaistettu liikkuminen ja
  • lopuksi käyttäjän interaktio liikkuvien ötököiden kanssa.

Yleisellä tasolla ohjelmassa on logiikka, GUI ja animaatio erikseen. Ne myös rakennetaan samassa järjestyksessä.

Luokat ja niiden summittainen toiminta:

Matikka - Asettaa ötököiden maksimilukumäärän. Arpoo käytetyt satunnaisluvut. Tarkistaa käyttäjän arvauksen oikeellisuuden.

Peli - Pyörittää peliä, käynnistää ja lopettaa sen, pitää huolta vuorojen ja oikeiden tulosten määrästä. Peli myös pyytää ja käsittelee käyttäjältä saamansa vastaukset Matikan tehtäviin.

Ötökkä - Pysyy paikallaan, kunnes arvaus on oikein. Sitten lähtee liikkumaan satunnaista rataa pitkin. Reagoi käyttäjän hiiren liikkeisiin.

Animaatio - Mallintaa ötökän liikeradan.(Todennäköisesti kannattaa olla oma luokkansa)

Ikkuna - Piirtää graafisen käyttöliittymän muuttumattomat perusosat paikoilleen. Myös valikot ja numeronapit.
 Alkuvalikko - JDialog, josta pelaaja voi valita alussa vaikeustaso
 Loppuvalikko - JDialog, joka näyttää tuloksen, aloittaa uuden pelin tai lopettaa pelin.
 Asetukset - Menusta avattava JDialog, jossa päästään vaikuttamaan ohjelman vaikeustasoon: ötököiden määrä (ja ehkä animaation nopeus).

Pelilauta - Piirtää pelilaudan ötökät paikoilleen. Hiiren kuuntelijat selvittävät, mitä käyttäjä tekee ja pelilauta reagoi sen mukaisesti.

Ohjelma tullaan koodaamaan Eclipsellä, käytössä Java 5.0 ja GUI toteutetaan Swingillä. Ohjelmasta tehdään Web Start-versio, jotta se saadaan helposti ladattua omalle koneelle mutta nettiä ei tarvita enää ohjelman myöhempään käyttöön. Suurimmat haasteet ovat varmaankin animaation ja interaktion kanssa. Sen vuoksi haluan ensin saada ohjelman perustoiminnot toimimaan ja vasta sitten lähden selvittämään animaation tekemistä. Jos satunnaisesti kiertelevät ja kaartelevat, toisiinsa törmäilevät ötökät ovat liian vaikeita toteuttaa, ötökät voivat myös liikkua suoraviivaisesti ruudulta pois toistensa yli ja käyttäjän reagointi näihin aiheuttaa normaalia biljardipallomatematiikkaa.

Tietolähteet: