Tapaus 8 – Purku

Eräs ryhmämme jäsen vietti merkkipäivää, joten OLO-sessio saatiin mukavasti käyntiin onnittelulaululla kyseisen henkilön astellessa sisään. Tästä voitiin siirtyä hitaasti mutta varmasti tapauksen 8 purkamiseen ja abstraktion ihmeelliseen maailmaan.

Ensimmäiseksi Justus ja Jaakko kertoivat, miten laivanupotuksen käyttöliittymän voisi toteuttaa Swingillä. He puhuivat JButtoneista, JPaneleista, kuuntelijoista, JFramesta sun muusta. Päällimmäisenä jäi käteen se, että käyttöliittymän toteuttamiseen tarvitaan paljon koodia.

Seuraavaksi Hanna pureutui suunnittelun visualisointiin. Meille selvisi, että UML eli Unified Modeling Language on oliomallinnuskieli, jolla mallinnetaan toteutettavaa ohjelmistoa esim. erilaisilla kaavioilla. UML helpottaa ohjelmiston kehitystyötä silloin, kun tehdään suurempaa projektia. Se myös auttaa kommunikaatiota, kun ohjelmoidaan isommalla porukalla.

Emmi kertoi meille abstraktion käyttämisestä ohjelmistosuunnittelussa. Pääajatuksena oli se, että kun pitää luoda paljon luokkia, on kätevää, että yksi jäsen luo abstraktin yläluokan, ja muut jäsenet luovat siihen alaluokkia. Näin ryhmäohjelmointi saadaan hyvin jaettua pienempiin osiin.

Paulin tehtävänä oli etsiä tietoa Java APIn rajapinnoista. Näitä ovat mm. Swing, AWT ja comparator. Selvisi, että Java API on myös itsessään rajapinta.

Tämän jälkeen Kaisa kertoi MVC-mallista eli Model-View-Controllerista, joka on mallinäkymäkäsittelijä-arkkitehtuuri. Tämä arkkitehtuuri pitää käyttöliittymän (view) erillään koodista (model), jotta niitä voisi muokata itsenäisesti. Kontrolleri välittää sitten tietoa käyttöliittymän ja koodin välillä. Assarien avulla selvisi, että tätä arkkitehtuuria käytetään hyväksi omassa projektissa.

Aarne kertoi, että hyvä tapa tehdä JavaDoc on seuraavanlainen:
/**
* Tähän lyhyt kuvaus metodista tai luokasta, esim: Antaa olennot listassa
*
* Tähän pitkä kuvaus metodista tai luokasta, esim: Antaa olennot listassa aakkosittain järjesteltynä.
* Tähän tagit kuten @return ja @param. Nämä Eclipse luo automaattisesti
*/
Lisäksi ohjelmointikierroksen tehtävänannossa kerrotaan miten html-tiedostot tehdään.

Miikan tehtävänä oli alhaalta ylös ja ylhäältä alas. Tapa ylhäältä alas on hyvä, koska se antaa yleiskäsityksen ennen kuin mennään tarkkoihin yksityiskohtiin. Alhaalta ylös -tavassa taas aloitetaan yksityiskohdista. Tämä tapa voi olla hyvä, jos ohjelmointi tehdään ryhmässä. Tällöin ryhmäläisille täytyy kuitenkin antaa tarkat ohjeet siitä mitä tehdään, sillä ongelmia syntyy, jos alhaalta ylös -luokat on tehty eri tyyleillä jolloin ne eivät sovi yhteen.

Lopuksi palattiin vielä laivanupotusvirikkeen pariin. Vesa kertoi laivanupotuksen luokkarakenteesta. Laivanupotuspeli voisi sisältää esim. kolme luokkaa: GUI, ruudukko ja laiva. GUI luo kaiken eli toimii pohjana pelille. Ruudukkoluokka luo ruudukon ja pitää huolta laivojen laittamisesta oikeille paikoilleen ruudukossa. Ruudukkoluokka hoitaa myös kuuntelijat. Laivaluokka pitää huolta yksittäisistä laivoista. Laiva tietää kumman pelaajan omistama se on, mikä on ensimmäisen palasen koordinaatti ja mihin suuntaan laiva lähtee siitä. Useamman ruudun kokoinen laiva on siis yksi olio. Laiva osaa myös piirtää itsensä.

Viimeisenä Annukka kertoi laivanupotuspelin tekoälystä. Tietokone voisi ampua satunnaisiin paikkoihin, kunnes se osuu laivaan. Laivaan osuessaan se ampuu pääilmansuunnissa oleviin osuman viereisiin ruutuihin kunnes mahdollisesti osuu taas laivaan. Tästä se lähtee ampumaan samaan suuntaan kunnes ei enää osu laivaan, ja sen jälkeen ampuu alkuperäisen osumapaikan kohdasta vastakkaisessa suunnassa olevaan ruutuun, ellei tähän ole vielä ammuttu. Tietokone ei myöskään ammu laivan viereisiä ruutuja, jos koko laiva on jo löytynyt, sillä laivat eivät voi olla kiinni toisissaan.

Ennen seuraavaan tapaukseen siirtymistä Pauli näytti meille vielä Java-aiheisen videon, jonka oli tarkoitus olla alkukevennys, mutta siitä tulikin välikevennys tietoteknisten ongelmien takia. Tällä kertaa purku saatiin ytimekkäästi ja sujuvasti hoidettua, ja kestikin tovi saada assarit tajuamaan, että kaipailemme jo intoa puhkuen seuraavaa tapausta.

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s