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ä (2016): Aino Haavisto ja Jenna Tuominen


Takaisin: Syksy 2014

Puutarhapeli

Pelin toiminta Pelissä hoidetaan puutarhaa ja sieltä myydään kukkia. Öisin puutarhassa saattaa välillä käydä otuksia metsästä syömässä kukkia. Peliin voi myös ostaa kastelukannun, jolla kukkien kasvua voi sitten nopeuttaa.
Vaikeustaso Peli sopii edistyneemmälle ohjelmoijalle. Siinä käytetään klooneja, monimutkaisempia ehtoja tapahtumille ja hahmot keskustelevat keskenään viestein, jotta yksittäiset toiminnot saadaan toteutettua. Peli ei sisällä matemaattisesti mitään haastavampia elementtejä, mutta ohjelman suorituksen seuraaminen vaatii keskittymistä.
Oppimistavoitteita
  • Opitaan kloonien käyttöä
  • Opitaan asusteiden vaihtoa ja tarkistusta
  • Opitaan hahmojen välisestä vuorovaikutuksesta (kosketus ja viestit)
  • Tutustutaan vapaavalintaisesti asteisiin (kulmat)
  • Kerrataan koordinaatistoa
  • Kerrataan ehdollisia valintoja
  • Kerrataan toimintojen suorittamista lähetettyjen viestien pohjalta
Toimiva versio Puutarhapeli mallina Scratchissa
Variaatioita toteutuksessa Peliin voi toteuttaa omanlaisensa puutarhan, kukkien ei välttämättä tarvitse olla edes kukkia vaan myös esimerkiksi zombien viljeleminen onnistuu varmasti. Peliin voi halutessaan tehdä myös kalliimpia erikoiskukkia tai kastelukannun lisäksi muita apuvälineitä. Peliin voi lisätä myös jonkin määritelmän voitolle. Häviön määrittäminen on haastavampi tehtävä.

Kuva mallipelistä:

Screenshot esimerkkipelistä. Screenshot esimerkkipelistä.

Työvaiheet:

Väriselite:

Oppimistavoite
Tarkennus tekotapaan
  1. Kukkapenkit
    1. Piirrä kukka ja sen asusteisiin kaikki sen eri kasvuvaiheet
    2. Kasvuvaiheiden tulee myös sisältää istuttamaton penkki (ei voi olla tyhjä asuste, jotta sitä voidaan myöhemmin klikata) ja valmis, poimittavissa oleva kukka. Asusteita voi luoda esimerkiksi 4-6, ja niiden on hyvä olla järjestyksessä tyhjästä penkistä valmiiseen kukkaan.
      Uuden asusteen pohjaksi voi luoda aina edellisen asusteen kopion, jolloin kukka ei näytä vaihtavan paikkaa kun sen asuste vaihtuu. Kopiointi onnistuu mm. yläpalkin leimasin-työkalulla.
    3. Nimeä kukan asusteet
    4. Kloonaa kukkapenkki useaan kohtaan pelialuetta
    5. Kukkapenkkiä kopioitaessa harjoitellaan kloonausta. Kloonien tulee myös pelissä asettua eri paikkoihin.
      Käske alkuperäistä kukkapenkkiä siirtymään siihen kohtaan mihin haluat vasemmanpuoleisimman kukan asettuvan. Luo klooni. Siirrä alkuperäistä kukkapenkkiä aina esim. 100 x-akselilla oikealle ja luo klooni uudessa paikassa. Toista kukkapenkin siirto sen mukaan kuinka monta kukkapenkkiä haluat.
    6. Piilota alkuperäinen kukkapenkki pelin alussa
    7. Näytä kukin kloonattu kukkapenkki sen syntyessä
    8. Näytä klooni "kun aloitan kloonina" -palikan alla.
  2. Kukkien istuttaminen
    Kukkia istutetaan tyhjää kukkapenkkiä klikkaamalla.
    1. Aseta kloonatun kukkapenkin asusteeksi ensimmäinen tyhjän penkin asuste sen aloittaessa
    2. Kun kloonia klikataan testataan onko kukkapenkki siltä kohdalta vielä tyhjä
    3. Testataan siis jos asusteen # = 1.
    4. Jos kukkapenkki oli tyhjä vaihda penkille taimen asuste.
  3. Kukkien kasvaminen
    Tässä harjoitellaan viestien lähettämistä hahmojen välillä, ja ehdollisia valintoja.
    1. Tee aurinkokello-hahmo
    2. Hahmo voi näyttää myös joltain muulta, mutta tarkoitus on, että sitä klikkaamalla pelaaja voi päättää vuorokauden töiden loppuneen ja vaihtaa vuorokautta.
    3. Aseta aurinkokellon paikka ja komenna se osoittamaan kohti 90 (oikea)
    4. Kun aurinkokelloa klikataan, se lähettää viestin "vuorokausi vaihtuu"
    5. Vaihtoehtoinen: Aurinkokello pyörähtää ympäri kun vuorokausi vaihtuu
    6. Tässä tutustutaan ohimennen ympyrän ja kulmien asteisiin.
      Viestin lähetyksen jälkeen aurinkokello esimerkiksi toistaa 36 kertaa 10 astetta kääntymisen.
    7. Kun kukkapenkki-kloonit vastaanottavat viestin ne vaihtavat seuraavaan asusteeseen
    8. Asustetta vaihdetaan vain jos kukka on jo istutettu ja se ei ole kasvanut valmiiksi vielä
    9. Asusteen vaihto suoritetaan, jos asusteen # ei ole 1 ja se ei ole viimeisen asusteen järjestysnumero.
  4. Kukkien poimiminen
    Myös kukkien poimiminen toimii kukkaa klikkaamalla, mutta kukan pitää olla valmis poimittaessa.
    1. Testaa kukan istuttamisen koodin jälkeen, jos kukan asustenumero on sen viimeisen asusteen järjestysnumero
    2. Jos kukka oli viimeisessä vaiheessaan, vaihda asusteeksi tyhjä kukkapenkki
  5. Kukkakauppatoiminta
    1. Luo muuttuja nimeltä raha
    2. Muuttujan voi luoda esiintymislavalle (ja se voi siis näkyä myös kaikille muille hahmoille). Raha ei tule erityisesti olemaan minkään tietyn hahmon ominaisuus, joten sen hallinnointi ei kuulu niiden tehtäviin.
    3. Aseta raha esimerkiksi arvoon 7 pelin aluksi
    4. Salli istuttaminen vain, jos rahaa on tarpeeksi
    5. Laita istuttamisen (asusteen asetus taimeksi) ympärille testi, jos raha >= istuttamiseen tarvittava määrä. Tarvittava määrä voi olla mm. 2. Koska Scratchissa ei ole >= merkkiä on testi oikeastaan luotava testaamalla onko rahan määrä suurempi kuin juuri tarvittavaa määrää pienempi arvo: jos raha > 1.
    6. Jos taimi istutettiin, vähennä muuttujasta raha käytetty summa.
    7. Kun kukka poimitaan, kasvata rahan määrää
    8. Puutarhuri saattaa välillä menettää kukkia tuholaisten johdosta, joten kukista kannattaa saada enemmän rahaa kuin mitä istuttaminen maksaa. Rahan määrän kasvattaminen sijoitetaan samaan yhteyteen kuin missä kukan asuste muutetaan jälleen takaisin tyhjän kukkapenkin asusteeksi.
  6. Puutarhavaras
    1. Piilota varas pelin alussa
    2. Kun vuorokausi vaihtuu, lähetä satunnaisesti "varas saapuu" -viesti
    3. Kun hahmo siis vastaanottaa "vuorokausi vaihtuu" -viestin se heittää noppaa siitä lähetetäänkö viesti "varas saapuu". Nopanheiton voit tehdä esimerkiksi "jos satunnainen luku 1-6 > 3" -komennolla.
      Varkaan kannalta ei ole tärkeää, että eriytämme varkaan saapumiseen omaksi komentosarjakseen, mutta ohjelmoijan kannalta sillä on ohjelmoinnissa suuri merkitys. Kun ohjelma jaetaan pieniksi helppolukuisiksi pätkiksi on sen tekeminen helpompaa. Tällä kertaa viestin lähetys tarvitaan myös, jotta kukat tietävät joutuvansa mahdollisesti varastetuiksi.
    4. Kun varas vastaanottaa "varas saapuu" -viestin, se kulkee halki puutarhan
      1. Aseta varkaalle aloituspaikka
      2. Aseta varas näkyviin
      3. Valinnainen: Aseta varas sanomaan jotain
      4. Aseta varas liukumaan toiselle puolelle puutarhaa
      5. Aseta varas piiloon
    5. Kun kukka vastaanottaa "varas saapuu" -viestin, se satunnaisesti joutuu varastetuksi
      1. Määrittele satunnaisuus esim. "jos satunnaisluku 1-6 < 3" komennolla
      2. Jos nopasta tuli valittuja numeroita, muuta kukan asuste tyhjäksi kukkapenkiksi
      3. Noppaa ja sen raja-arvoa voi muuttaa sen mukaan miten haastavan pelistä haluaa. Peliä kannattaa testipelata jonkun verran tätä varten.
  7. Ravinteikas kastelukannu
    1. Piirrä kastelukannulle kolme asustetta: hintalapullinen, täysi ja tyhjä
    2. Voit tehdä yhden kastelukannun valmiiksi ja sitten kopioida siitä kaksi lisäasustetta, jotka sitten tuunaat sopivasti.
    3. Kun peli alkaa, asusteena on hintalapullinen kuva
    4. Kun kannua klikataan, testaa onko rahaa tarpeeksi. Jos on, muuta asuste täydeksi
    5. Kannun osto vähentää pelaajalta rahaa
    6. Kastelun vaikutus kukkaan
      1. Testaa ikuisesti koskettaako kannu kukkaa JA onko kannun asuste tällöin "täysi"
      2. Kukka voi selvittää kannun asusteen tuntoaistin "x-sijainti of Hahmo" -palikalla kun ensimmäiseen lokeroon on valittu "asusteen nimi" ja toiseen oikea hahmo. Huomaa, että asusteen nimeä kirjoittaessasi siinä pitää olla täsmälleen samat merkit isoihin ja pieniin kirjaimiin ja välilyönteihin asti.
      3. Jos edellinen testi täyttyy testaa myös onko kukka istutettu eikä vielä valmis
      4. Testaa siis, että asusteen numero ei ole 1 JA se ei ole viimeisen asusteen numeroinen.
      5. Jos edellinenkin testi piti paikkansa, aseta kukalle seuraava asuste, ja lähetä "tyhjennä kastelukannu" -viesti ja odota
    7. Kastelukannun asuste muuttuu tyhjäksi, kun se vastaanottaa viestin "tyhjennä kastelukannu"
  8. Kastelukannun täyttyminen
    1. Vaihda asusteeksi "täysi", kun vastaanotetaan viesti "vuorokausi vaihtuu", jos kastelukannun asuste on "tyhjä"