Arkisto marraskuu 27., 2007:lle

jotain näkyvää ja ehkä kuuluvaakin

Neljäs ohjelmointitehtävä toi mukanaan taas ison kasan uusia haasteita. Kuinka niistä sitten selvitä? Uutta ja jännää tehtävässä olivat rajapinnat ja ihan konkreettinen pelimoottori, joka pisti pyörät pyörimään, eli tässä tapauksessa kutsui vuorotellen kaikkien rajapinnan toteuttavien olioiden teesiirto-metodia. Mutta kaikkein jännintä oli kuitenkin ihan “oikean” eli ohjailtavissa olevan pelaajan luominen ja pelimaailmaan itegroiminen! Tämä toteutettiin luomalla luokka Avatar ja metodi teesiirto, joka luki käyttäjän antamia komentoja ja, kun koodin sai toimimaan, myös toteutti niitä! :) Aivan mahtava fiilis, kun kirjoitti komentoriville “katso” ja “mene p”, ja sai aikaiseksi ihan oikean tulostuksen ja kun sitten näki pienen punaisen pisteen siirtyvän sektorista toiseen sai näkyvän lisäksi aikaan jotain kuuluvaakin. Näppäimistöllä annettuja komentojen lukemiseen käytettiin BufferedReaderia, joka sekin tuli uutena tässä tehtävässä.

Ohjelmointitehtävä4, kaikista mahdollisista poikkeuksista ja paniikkikoodaamisista huolimatta on tähän mennessä ollut ehdottomasti syksyn mukavin! Koodin tuotto sujui alkukankeuksien jälkeen, ja kun testaamaan päästiin, niin sittenhän sitä testattiin. Lopulta pelin suorittaminen tyssäsi nullPointeriin tai ArrayIndexBoundsOfExceptioniin tai johonkin muuhun yhtä mukavaan komentorivin tulostukseen. Ja ei kun virhettä etsimään ja uusi peli käyntiin! Vaikeinta tehtävässä, ehdottomasti, oli pelin idean keksiminen ja sen toteuttaminen. Omia metodeja syntyi aika runsaasti, ja kohta niiden kanssa oltiinkin aivan solmussa! Olisi kyllä ehdottomasti kaivattu taas hieman järjestelmällisyyttä ajatuksiin sekä niiden toteuttamiseen.. Kuitenkin, omia metodeja aika runsaasti koodiin lisänneenä, voin jopa väittää oppineeni jotain. Yrityksen ja erheen kautta olen jo ehkä oppinut niitä sopiviin käyttötarkoituksiin tekemään. Aluksi oli vaikeinta juuri se pohtiminen; mitä metodin halutaan tekevän, tarkistavan jotain vaiko kenties palauttavan, ja minkä tyyppisenä…

Tällä kierroksella toteutetaan graafinen peli Sikoban. Ja kuinka hyvin toteutetaakaan… Lauantaihin asti taas aikaa, paniikkikoodaus siis lauantaina 16-17.50.

-Meri

Voi oloilujen oloilu! Viimeinen OLO (8. vai 9.?)

Nyt loppui tuo kaikki syksyn maanantaipäivät riemukkaasti tai vähemmän riemukkaasti käynnistänyt kaksituntinen. Ensimmäinen OLO-sessiomme oli syyskuun ensimmäisillä viikoilla. Ovesta sisään astuessamme ei meillä ollut tietoakaan siitä, mitä tämä tällainen OLO-sessio tarkoittaa, miksi näitä on, ja mitä kaikkea viikottaisiin tapaamisiin saadaankaan mahtumaan! Assarit näyttivät pelottavan kaikkitietäviltä, “mitä minä nyt uskaltaisin kysyä, kun en yhtikäs mitään javasta tiedä”. Saimme A-neloset käteemme, kasan Post-It -lappuja viereen, ja siitä sitten vain lukemaan ja ajatuksia lapuille kirjoittamaan. “Mmitä ihmettä, filosofiaa, you must be kidding..! “

Jälkeenpäin ajateltuna Javaan tutustuttaminen Platonin ideaopin kautta on hauska ja rento tapa, mutta kun vielä java-arkuutta siinä vaiheessa potiessani luin kyseistä tekstiä, oli pääni aivan sekaisin ja Post-It -lappujen kirjoittaminen tuntui aivan mahdottomalta tehtävältä, “Mitä jos laitan tähän jotain, mikä on väärin tai entä jos se ei liitykään aiheeseen?” Sillä hetkellä toivoin, että olisin ollut sihteerinä; olisin kuin huomaamatta voinut jättää ajatustyön muille ja keskittyä lappujen kiinnittelemiseen seinälle. Onneksi joku muu sai idean ja ensimmäinen lappu oli syntynyt. Sen jälkeen oli helpompaa lähteä mukaan. Ensimmäiset “ajatukseni” syntyivät suoraan lähdetekstin käsitteistä. Omia aivoja piti oikein työstää löytämään uusia ideoita. Tämä ei onnistunut kovinkaan hyvin ensimmäisessä OLO-sessiossa, mutta jo toisessa ja kolmannessa tuntui, että jotain tästä uudesta ja jännästä pystyy jo sisäistämäänkin.

Viimeinen avaus oli jo kaksi viikkoa sitten. Tapaus oli järjestyksessään yhdeksäs (nollatapaus laskettuna mukaan) ja saimme miettiä kokonaisen tietokoneohjelman rakennetta ja toteutusta. Mitä kaikkea siihen tarvitaankaan. Ohjelmointitehtävissä vastaan jo tulleet graafinen käyttöliittymä ja säikeet ainakin! Tapauksen aihe ja vaativuustaso olivat hieman muuttuneet ensimmäisestä, mutta Javaan jo hieman perehtyneenä ja edellistä tapauksista kokemusta pohtimiseen saaneena, oli ajatuksetkin helpompi pitää aiheessa. Ryhmämme kokoontui viimeisen kerran yläkerran neukkarissa projektin suunnittelun merkeissä. Kyseessä oli pitchaus, ja jokainen esitteli kohta alkavan urakkansa aihetta ja sai palautetta siitä. Tunnelma oli jouluinen Vesan tarjoaman glögin ansiosta, mikä muistutti samalla tulevasta joulun vietosta Javaisissa merkeissä.

Tässä vaiheessa tuntuu vielä epätodelliselta lähteä luomaan omaa ohjelmaa tyhjästä ilman tarkoin määriteltyjä ohjeita tai assarointia. Luulenpa kuitenkin, että koodaamaan päästyäni, ei koodauksesta tule loppua, ja ongelmiinkin oppii löytämään itse ratkaisun!

-Meri