sunnuntai 21. syyskuuta 2014

Koodauksen ABC: 4. oppitunti

Koska edellisellä oppitunnilla tuli niin paljon uutta asiaa, olin päättänyt että tällä tunnilla vain kertaisimme vanhoja asioita koodaushaasteen avulla. Haaste olisi saada pacman liikkumaan vasemmalta oikealle eli soveltaa edellisen tunnin oppeja ufon laskeutumisesta.

Ja vaikka olin päättänyt, että mitään uutta tällä tunnilla ei tule niin otin kaikesta huolimatta cond - lauseen esiin. cond:ia ei sinänsä olisi tarvittu pacmanin liikuttamiseen mutta ajattelin, että voisi olla hyvä harjoitella vielä funktion kirjoittamista yhden apufunktion avulla. Eli teimme anna-pacman - funktion, joka palauttaa oikeaan suuntaan katsovan pacman-hahmon (kuvan). Parametrina oli tietysti suunta (YLÖS, ALAS, OIKEALLE, VASEMMALLE).

cond - lauseen avulla saadaan tehtyä koodihaaroja
Ehtolauseet olivat yksinkertaisesti (equal? suunta OIKEALLE) ja jos näin oli palautettiin oikealle katsova pacman jne. else - haaraan laitoimme pelkän PÄÄ:n ilman suuta. Tätäkin funktiota testattiin heti eri suunnan arvoilla ennen kuin jatkoimme eteenpäin.

Vaikka tarkoituksena oli tehdä aivan samaa kuin viime kerrallakin, oppilaiden oli vaikea ryhtyä työhön. Selvästikään funktion ja sen paluuarvon käsittettä ei oltu vielä ymmärretty riittävän hyvin. Siksi kysyin oppilailta kysymyksiä heidän koodistaan, missä oppilaat toimivat "funktioina" ja "kutsuin" heitä eri parametreillä. Tällaisia kyselin:
             - mitä annat minulle kun sanon "(piirrä-ufo 100)"?  - kuvan
             - mitä annat minulle kun sanon "(siirrä-ufo 150)"?  - 160 (ASKEL oli 10)
             - mitä annat minulle kun sanon "(maassa? 350)"?   - true (MAANPINTA oli 300)

Tämän kyselykierroksen jälkeen suurin osa tuntui ymmärtävän funktion käsitteen niin hyvin, että funktioiden kirjoittaminen lähti liikkeelle. Teimme siis uudelleen lähes samat funktiot kuin viime kerrallakin nyt vain eri nimisinä: piirrä-pacman, siirrä-pacman, reunalla? Ainoa ero  oli se, että piirrä-pacman kutsui anna-pacman - apufunktiota saadakseen oikeanlaisen pacmanin. big-bang oli myös aivan samanlainen. Lopputunnista kaikilla oli liikkuva pacman - koodi valmiina.

Ei kommentteja:

Lähetä kommentti