Materiaalit on lisensoitu Creative Commons BY-NC-SA-lisenssillä, eli materiaalin levittäminen ja muokkaaminen on sallittu, kunhan tekijöiden nimet säilyvät mukana ja jatkoversiot julkaistaan samalla lisenssillä. Kaupallinen käyttö kielletty.

Alkuperäinen tekijä (2015): Jenna Tuominen


Takaisin: Scratch-oppitunnit opettajille

Matopeli

Pelin toiminta Pelissä on mato, joka keräilee satunnaisiin paikkoihin ilmestyviä aarteita. Mato liikkuu vakionopeudella ja pelaaja vaikuttaa vain sen kulkusuuntaan. Jokaisesta aarteesta madon pituus kasvaa yhdellä.
Vaikeustaso Peli on varsin yksinkertainen ja lyhyt, mutta toisaalta ohjelmointilogiikan puolesta se tarjoaa haastetta. Madon kasvaessa tekijä ajattelee herkästi matoa, jonka häntä seuraa matoa, mutta ohjelmoinnillisesti tämä olisi hyvin haastava tehdä. Lähestymistapaa ongelmaan pitääkin pyöräyttää sen verran, että mato tiputtelee itsestään paikalleen jääviä kopioita, jotka jäävät jälkeen. Kopiot sitten poistavat itsensä kun jäävät "hännästä jälkeen". Pelaajan näkökulmasta häntä seuraa päätä.
Oppimistavoitteita
  • Opitaan hahmojen liikuttelua ilman koordinaatistoa
  • Opitaan hahmojen välisestä vuorovaikutuksesta (kosketus)
  • Tutustutaan koordinaatistoon
  • Tutustutaan lukujen arpomiseen
  • Opitaan keräilemään pisteitä
  • Tutustutaan klooneihin
  • Opitaan käyttämään leimaus-komentoa
Toimiva versio Matopeli mallina Scratchissa
Muut mallit Opettajan tulostettava muistilista komennoista
Opettajan tulostettava muistilista komennoista (sis. selityksiä)
"Rasti-ruutuun" -tehtävälistaus oppilaalle
Opasvideot Video-opas opettajalle
Opettajan video-oppaan vapaavalintainen jatko-osa
Variaatioita toteutuksessa Erilaisilla hahmoilla peliin voi saada erilaisen tarinan.

Kuva mallipelistä:

Screenshot esimerkkipelistä. Screenshot esimerkkipelistä.

Työvaiheet:

Väriselite:

Oppimistavoite
Tarkennus tekotapaan
  1. Madon pää liikkeelle
    Matoa ohjataan nuolilla, mutta se liikkuu muuten jatkuvasti jollain valitulla nopeudella. Pelaaja ei voi nopeuttaa tai hidastaa sitä. Tällaisessa toteutuksessa ei tarvitse tuntea koordinaatistoa.
    Pääksi tulee valita pallomainen tai neliömäinen pala (leveyden ja korkeuden puolesta symmetrinen). Pään tulee suuntautua kuvassa oikealle.
    1. Pää kääntyy nuolista
    2. Tämän voi toteuttaa esimerkiksi pelin alusta alkavana ikuisena testailuna, että onko jokin nuolinäppäin painettuna.
    3. Pää liikkuu pään mitan verran pelin aluksi
    4. Eteenpäin liikuttavan määrän voi testata, jos jokaisen liikkeen jälkeen laittaa "leimaa" palikan kynä-komennoista (ja pelin alkuun "pyyhi" -palikan). Tällöin pää leimaileen jälkiään ja on helpompi määritellä onko liikuttu määrä sopivan verran. Kun sopiva määrä on löydetty voi leimaa ja pyyhi -palikat poistaa.
    5. Tee kaikille hahmoille muuttuja "ajastin"
    6. Aseta ajastin pelin alussa siihen arvoon miten usein madon tulee liikahtaa
    7. Pää liikkuu ajastimen arvon välein mittansa verran
    8. Liikkuminen asetetaan ikuiseen silmukkaan ja jokaisen liike-komennon jälkeen komennetaan pää odottamaan ajastimen arvon verran ennen seuraavaa liikahdusta.
  2. Piirrä aarre
    Aarteen tulee osata tunnistaa kosketus madon kanssa ja reagoida siihen.
    1. Pelin aluksi aarre asetetaan satunnaiseen paikkaan
    2. Tehtävässä tutustutaan satunnaisuuteen ja tutustutaan ajatukseen sijainnin määrityksestä kahden eri suureen avulla; leveyden (x) ja korkeuden (y).
      Mahdollisten satunnaisten paikkojen ylä- ja alarajat voi testata pelialueella hiirellä. Pelialueen alla näkyy hiiren sijainti x- ja y-akseleilla. Pienimmät ja suurimmat x:n ja y:n arvot voi selvittää viemällä hiiren pelialueen eri reunoille.
      Ilman koordinaatteja satunnaisen paikan valinnan voi toteuttaa seuraavalla tavalla riittävän hyvin:

    3. Aarre odottaa kunnes se koskettaa matoon
    4. Edellistä kahta vaihetta toistetaan ikuisesti
    5. Valinnainen: Aarre ei voi ilmestyä madon päälle
    6. Paikan valintaa voidaan toistaa kunnes aarre ei koske matoon.
  3. Lisää pisteet
    1. Pisteet asetetaan nollaksi pelin alussa
    2. Kaikissa peleissä ja ohjelmissa on tärkeää, että pelin alkutila asetetaan. Erityisesti Scratchissa peli alkaa muuten edellisen pelin lopputilasta.
    3. Lisäpiste annetaan aina kosketuksen odotuksen jälkeen
  4. Mato voi kasvaa
    Kun tietokone tietää miten yksi kuva tehdään niin se osaa tehdä kuvasta rajattomasti kopioita saman reseptin avulla. Matoa varten ei siis tarvitse tehdä kymmeniä kuvia sen jokaisesta eri ruumiinosasta vaan madon päätä voidaan komentaa tekemään kopio itsestään. Kopiot automaattisesti syntyvät kopion tekijän kohdalle pelialueelle.
    1. Mato aina liikahduksensa jälkeen luo kloonin itsestään
    2. Tee kloonille uusi keho-asuste ja nimeä asusteet
    3. Uuden asusteen kannattaa olla samankokoinen kuin pään tai ihan vain sen erivärinen kopio.
    4. Kloonille sen syntyessä annetaan komento ottaa päälleen keho-asuste
    5. Alkuperäinen pää ottaa pelin alussa varmuuden vuoksi asusteekseen pää-asusteen
  5. Madon osat laskevat järjestysnumeroaan madossa
    1. Tee kloonille hahmokohtainen muuttuja "monesko olen"
    2. Aseta "monesko olen" arvoon 1 sen syntyessä
    3. Aseta klooni ikuisesti odottamaan ajastimen verran
    4. Tämä toimii "metronomina". Ajastimen määräämän ajan välein ohjelma voi toteuttaa jonkin komennon. Scratchista löytyy tuntoaisti-komennoista myös "ajastin", mutta se soveltuu paremmin sekuntikelloksi.
    5. Aina odotuksen jälkeen muuta "monesko olen" muuttujaa yhdellä
  6. Hännän pituus kasvaa vain syödyistä ruoista
    1. Madon osa aina järjestysnumeron kasvatuksen jälkeen testaa, onko se liian kaukana päästä
    2. Tehdään siis testi, jossa katsotaan: jos "monesko olen" > "pisteet" +1. Testataan onko suurempi kuin pisteet + 1, sillä pelin alussa pisteet on nolla vaikka madon halutaan olevan jo yhden mittainen.
    3. Jos osa on liian kaukana päästä se poistetaan
  7. Törmäyksen tarkistus
    1. Lisää madon keho-asusteeseen keskelle väritunnisteläikkä
    2. Värin tulee olla sellainen, että pelissä ei muualta sitä löydy. Läikän tulee olla myös sen kokoinen, että sen voi kuvasta hiiripipetillä löytää.
    3. Pää tarkistaa aina liikahduksen jälkeen koskettaako se läikän väriä
    4. Jos läikkään kosketaan peli pysäytetään
    5. Huom! Mato ei voi kulkea reunan läpi, joten viimeinen askel reunaa kohti voi jäädä lyhyeksi ja mato jää osin edellisen palansa päälle. Tällä toteutuksella madon ei kannata mennä reunaan tai ohjelmaan pitää lisätä vielä alla löytyvä reunojen läpi kulku.
  8. Madon takaisin näkyviin asettaminen pysäytyksen jälkeen
    1. Juuri ennen pysäytyskäskyä lähetä viesti "maalaa mato" ja odota
    2. Lähetyksen lisäksi ohjelma odottaa, että muut ehtivät reagoida viestiin ennen kuin jatketaan seuraavaan pysäytyskäskyyn.
    3. Mato vastaanottaa viestin "maalaa mato" ja leimaa itsensä (kynäkomento)
    4. Kaikki madon kopiot vastaanottavat tämän viestin siitä huolimatta ovatko ne kopioita vai alkuperäinen pää.
    5. Pelin aluksi pelialue pyyhitään (myös kynäkomento)
  9. Valinnainen: Mato voi kulkea reunojen läpi toiselle puolelle
    1. Mato odottaa kunnes se on liian oikealla ja asettaa sitten paikakseen vasemman laidan
    2. Tämä kannattaa tehdä madolle uudeksi tehtäväksi, uuteen komentoketjuun. Odotetun arvon tulee olla arvo, joka on madon askelpituuden päässä reunasta. Odotetun arvon tulee olla myös itseisarvoisesti suurempi kuin arvon, jonne pää asetetaan, eli jos odotettu arvo on esimerkiksi >210 niin asetettu paikka voisi olla -210 ( >|210| on suurempi kuin |-210|). Kohta kun ohjelmoidaan, että vasemmasta laidasta pääsee oikeaan laitaan niin mato ei saa päätyä siirrosta suoraan uuteen siirtoon, eli olla valmiiksi liian reunassa.
    3. Mato luo kloonin myös siirrettyyn paikkaansa
    4. Siirron odotus ja sitä seuraava siirto tehdään ikuisesti
    5. Muut laidat käsitellään samoin