Tehtävä 6 – Pienpelit

Viimeisessä harjoitustyössä saimme tehtäväksemme kirjoittaa Scalalla ohjelman, jossa olisi mahdollista päästä pelaamaan kolmea klassista pienpeliä (eng. minigame): ristinollaa, hirsipuuta sekä ping pongia (jota kutsutaan myös pöytätennikseksi). Tehtävään ei meille annettu valmista ohjelmakoodin runkoa, eli meidän tuli kirjoittaa ohjelma itse alusta alkaen. Itselleni tämä oli varsin posiitiivinen seikka, sillä aiemmilla kierroksilla olen ollut vähän ongelmissa nimenomaan valmiiksi annettujen koodinpätkien kanssa.

Kun ensimmäisen pelin kohdalla olin edennyt jonkin matkaa, oli varsin selkeästi huomattavissa, että syksyn aikana kurssien tarjoama “ohjelmointityyli-propaganda” oli tehnyt tehtävästä varsin tehokkasti. Ohjelman eri osien jaoittelu ohjelmakoodiin, kun näytti kumman tutulta verrattuna kursseilla nähtyihin valmiisiin koodinpätkiin.

Suurin uudistus aiempiin tehtäviin nähden oli nyt siis se, siinä missä aiemmin on pitänyt vain toteuttaa yksittäisiä palsia suuremmasta ohjelmakokonaisuudesta, niin nyt piti itse myös suunnitella ohjelman rakenne ja pitää huoli siitä, että lopullisessa ohjelmakoodissa olisi oma paikkaansa ohjelman jokaiselle palaselle.

Suurimman haasteen tehtävässä ainakin itselleni muodosti swing-grafiikkakirjasto. Eritysesti se, että sai ikkunan elementtien asettelun kuntoon tuotti hankaluuksia. Myös paintComponent metodin ylikirjoituksesta näytti seuraavan varsin outoja asioita, jotka toisaalta ymmärrän, mutta taas toisaalta, “miksi ihmeessä asia pitää tehdä oikesti tehdä näin vaikeaksi”  kun monet muutkin ohjelmointikielet ja kirjastot ovat siinä onnistuneet. Ilmeisesti joitakin vaihtoehtoja swing/awt yhdistelmälle olisi tarjolla, mutta täydellinen tiedonpuute asiaan liityen ei juuri houkuttanut siihen, että olisi kokonaan uuden kirjaston käyttöä alkanut opettelimaan.

Tehtävän kaksi pääpainopistettä olivat siis mielestäni ehdottomasti oman ohjelman rakenteen suunnittelu, sekä grafiikkakirjastoihin tutustuminen. Itse pelilogiikoista vaikeuksia tuotti lähinnä vain pingpong -pelin törmäyksien käsittely. Muilla opiskelijoilla tilanne oli ilmeisesti ollut aika samankaltainen, eli vaikeudet olivat lähinnä painottuneet pingpong -pelin logiikoihin.

Toivottavasti kovin monella opiskelijalla tunnelmat eivät kuitenkaan ollet samat, kuin tällä hirsipuussa epäonnistuneella ukkelilla:

ukko

alkuperäinen kuva: http://www.republicofcode.com/tutorials/flash/hangman/

Antti Virtanen

Leave a comment