Viimeinen ryhmäohjelmointiharjoitus käsitteli kolmiulotteisen ohjelman luomista. Tässä harjoituksessa koodareina olivat minun lisäkseni Ghita ja Olli. Virikeluennolla ajattelimme heti toteuttaa jonkinlaisen pelin. Alkuperäisenä ideana oli kolmiulotteinen jousiammuntapeli, jossa kuvakulma seuraa nuolen liikettä ns. "First person point of view" tavalla. Olimme jo Ollin kanssa hieman ideoineet toteutusta, mutta sitten tapahtui jotai odottamatonta. Ghitan ehdotus kolmiulotteisesta labyrintistä vei meidät kaikki mennessään ja päätimmekin yhteistuumin toteuttaa sen.
Tiesimme jo alussa aiheen olevan haastava ja erittäin vaikeasti hahmotettava, sillä kolmiulotteisessa labyrintissä liikkuminen vaatii melko paljon eri kanteilta ajattelua. Päätimme lähteä liikkeelle kolmiulotteisesta taulukosta, johon luomme "kuutioita", joista jokainen tietää oman indeksinsä taulukossa, omien seiniensä suunnat ja lukumäärän sekä pelaajan tulosuunnan ja suunnat, joihin kyseessäolevasta maailman osasta voi edetä. Jaoimme ohjelman koodauksen niin, että Olli toteuttaa pelaajan eli kameran käytön ja liikuttelun, Ghita luo eriväriset valot erisuunnista ja tekee kolmiulotteisen taulukon. Minä pääsin rakentamaan labyrintin, eli rakensin labyrintin seinät, joista labyrintin osat koostuvat.
Kuutiot ja ohjelman yleisen rakenteen tehtyämme aloimme Ghitan kanssa yhtistellä luomuksiamme ja saimmekin lopulta valmiiksi perusrakenteet labyrintille. Kameran kanssa ilmenneet ongelmat kuitenkin hidastivat merkittävästi ratkaisujemme testaamista ja emme voineet olla täysin varmoja, generoiko ohjelmamme a) aina sellaisen labyrintin, josta pääsee ulos ja b) ovatko harhareitit sellaisia, ettein niistä pääse ulos. Lopulta kameran valmistuttua huomasimme koodissamme olevan joitakin logiikka virheitä harhareittien generoinnissa, joten niskaan hengittävän deadlinen takia, jouduimme karsimaan harhareitit pois labyrintista. Labyrintti toimii moitteettomasti, mutta käyttöliittymä ja ulkoasu jäivät valitettavasti vajavaisiksi. Yritimme lopussa vielä lisätä seiniin tekstuuria, mutta jostain meille tunetemattomasta syystä emme saaneet sitä toimimaan.
Lopulta tähän harjoitukseen käytimme ohjelmoinnissa kaikista eniten aikaa ja valitettavasti tulos ei ollut sellainen kuin toivoimme. Tässä harjoituksessa yksi lisäkoodari kameran liikkeiden luonnissa oli ollut enemmän kuin toivottu, mutta sitä on tässä vaiheessa turha murehtia. Koodista näkyy melkoinen epätoivo ja varsinkin paljon ylikommentoituja labyrintin ominaisuuksia, joita emme lopulliseen työhömme lisänneet.
Ohjelma ei valitettavasti käänny appletiksi syystä jota en tiedä, mutta koodit ovat ladattavissa tästä linkistä.
Peliohjeet: tarkoituksena on, että heräät painajaiseen ja huomaat olevasi keskellä kolmiulotteista labyrinttiä. Onneksi olet muistanut ottaa magneettikengät mukaan ja voit siis hypellä myös seinillä ja katossa. nuoli ylöspäin liikuttaa pelaajaa yhden peliruudun eteenpäin ja jos edessäsi on seinä, kiipeät ko. seinälle. Nuolet oikealle ja vasemmalle kääntävät katselusuuntaasi 90 astetta ko. suuntaan.