Scratchin käyttö ja toistorakenteet


Scratch-editori yksinkertaisten graafisten ohjelmien luomiseen.

Tällä kurssilla hyödynnämme ohjelmoinnin opetuksessa avointa Scratch-työkalua. Scratch on visuaalinen ympäristö, jolla voidaan havainnollistaa ohjelmoinnin perusperiaatteita helposti ymmärrettävässä muodossa. Scratchin Internet-selaimessa toimivaa editoria pääset hämmästelemään aukaisemalla allaolevan linkin. Sivu kannattaa pitää auki viereisessä välilehdessä koko ajan, kun luet tätä materiaalia eteenpäin. Tutki rohkeasti, mitä avautuva näkymä pitää sisällään!

http://scratch.mit.edu/projects/editor/

Kun saatavillasi on Internet-yhteys, tämä sivu on kaikki, mitä tarvitset käyttääksesi Scratchia. Jos sen sijaan haluat asentaa Scratchin tietokoneellesi, jolloin se on käytettävissä myös ilman Internet-yhteyttä, aukaise Scratchin asennussivu ja asenna tarvittavat ohjelmat. Tarkemmat ohjeet on annettu täällä.

Verrattuna varsinaisiin ohjelmointikieliin, kuten Pythoniin, Scratch oikoo paljon mutkia suoriksi. Asioiden saaminen aikaan sillä vaatii tositarkoitukseen suunnattuja kieliä huomattavasti vähemmän työtä, ja yksinkertaisimmatkin komennot antavat välittömän palautteen kuvan tai äänen muodossa. Kääntöpuolena Scratchilla ei kuitenkaan voi luoda järin luontevasti erityisen monimutkaisia tai etenkään hyödyllisiä ohjelmia. Ohjelmoinnissa vaadittavien ajattelumallien omaksumiseen se on silti mainio työkalu ja soveltuu myös erinomaisesti esimerkiksi peruskoulun alaluokkien ohjelmoinnin opetukseen!



Ensimmäinen ohjelma

Helpoin tapa tutustua Scratchiin on tehdä sillä jotain konkreettista. Aloitetaan siis antamalla yksinkertaisia ohjeita Scratchille! Voit vaihtaa Scratchin kielen suomeksi editorin vasemmasta yläkulmasta pallosymbolia klikkaamalla.


Scratchin kielen muuttaminen: klikkaa pallosymbolia ja valitse listasta suomen kieli.

Scratchille ohjeita antamalla voimme komentaa ruudulla näkyvää kissaa. Kaikki käytettävissämme olevat ohjeet on listattu Skriptit-välilehden alla.


Scratchin Skriptit-välilehti.

Ensimmäiseksi haluaisimme saada kissan suorittamaan järjestyksessä seuraavat ohjeet:

  • Liiku 20 pykälää eteenpäin
  • Naukaise
  • Vaihda asentoa

Pähkäillään ensin, miten kissan saisi liikkumaan. Oletuksena Skriptit-välilehden alla on aktiivisena Liike-valikko. Jos näin ei ole, klikkaa Liike-tekstiä. Liike-valikossa näemme sinisen ohjepalikan, johon on kirjoitettu ”liiku 10 askelta”. Sana askel on tässä yhteydessä hieman hämäävä, sillä se ei tarkoita konkreettista kissan askelta vaan pienintä mahdollista välimatkaa ruudulla, jonka kissa voi liikkua ja josta me käytämme nimitystä pykälä. Valitaan tämä ohjepalikka liikuttamalla hiiren osoitin sen päälle ja painamalla vasen hiirennäppäin pohjaan. Vedetään sen jälkeen palikka oikealla olevalle tyhjälle alueelle, kuten alla olevassa animaatiossa on esitetty. Aloita animaatio painamalla Start animation -nappia.



Liiku 10 askelta -palikan raahaminen ja pudottaminen.

Nyt kokeile klikata siirtämäämme palikkaa sinisen värin kohdalta. Huomaat kissan liikkuvan eteenpäin vaakasuunnassa 10 pykälän verran. Klikkaamalla tälle alueelle raahattuja ohjepalikoita kissa suorittaa siis niiden sisältämät ohjeet. Voit palauttaa kissan alkuperäiselle paikalleen klikkaamalla vasemman hiirennäppäimen pohjaan sen päällä ja liikuttamalla hiirtä.

Valitsemaamme ohjepalikkaa pitäisi vielä muokata siten, että kymmenen pykälän sijaan kissa liikkuukin 20 pykälää. Klikkaa siirtämästämme sinisestä palikasta lukua 10, ja tekstin maalautuessa mustaksi, kirjoita paikalle näppäimistöä käyttäen luku 20. Voit tarkistaa muutoksen toimivuuden klikkaamalla palikkaa jälleen sinisen värin kohdalta: nyt kissan pitäisi liikkua kaksinkertainen matka aiempaan nähden.



Liiku 10 askelta -palikan arvon muokkaus.

Seuraavaksi kissa pitäisi saada naukumaan sen jälkeen, kun se on liikkunut 20 pykälän verran. Tätä varten aukaistaan Skriptit-välilehden alta Ääni-valikko. Valitaan sieltä soita ääni meow loppuun -ohjepalikka (tämä voi olla suomennettu myös ”soita ääni naukuna loppuun”) ja raahataan se samalle alueelle aiemman sinisen palikan kanssa. Liitetään tämä uusi ohjepalikka sinisen palikan alapuolelle. Voit katsoa jälleen mallia animaatiosta.



Soita ääni naukuna loppuun -palikan liitäminen liiku 10 askelta -palikkaan.

Testaa lisäämäämme komentoa klikkaamalla yhteenliittyneitä palikoita. Jos naukunaa ei kuulu, tarkista, että koneesi äänet ovat päällä ja riittävän voimakkaalla. Kun kissa on onnistuneesti liikkunut ja naukunut, viimeistellään ohjeistuksemme kolmannella käskyllä. Tällä hetkellä kissan liike näyttää nimittäin vielä pelkältä eteenpäin liukumiselta kävelemisen sijaan.

Scratchissa voimme valita hahmoillemme, kuten kissallemme, useita eri asusteita eli ulkonäköjä. Tällä hetkellä asusteita on valittavissa kaksi, ja ne kuvaavat kissan kahdessa eri asennossa. Asusteita voi tarkastella klikkaamalla Asusteet-välilehteä.



Asusteet-välilehti avattuna.

Palaa Asusteet-välilehdestä takaisin ohjeiden valintaan klikkaamalla Skriptit-välilehteä. Aukaise Ulkonäkö-valikko. Kaipaamme siellä lepäävää seuraava asuste -ohjepalikkaa. Tämä palikka komentaa näet kissaa vaihtamaan seuraavaan käytettävissä olevaan asusteeseen. Koska asusteemme kuvaavat kissan kahdessa eri asennossa, tällä ohjeella saamme kissan vaihtamaan asentoa. Valitaan seuraava asuste -palikka, raahataan se oikealle ja liitetään se soita ääni naukuna loppuun -palikan alapuolelle.

Nyt kokeile klikkailla näitä kolmea yhteenliitettyä ohjetta ja ihmettele lopputulosta. Paina merkille, että ohjepalikat hehkuvat silloin, kun ohjelma on käynnissä eli kissan suorittaessa sen ohjeita, ja ovat himmeinä silloin, kun ohjelma ei ole käynnissä.

Ohjelman voi ajaa Scratchissa klikkaamalla yhtä sen ohjepalikoista.

Tässä vaiheessa olemme onnistuneesti antaneet ohjeita Scratchin kissahahmolle järjestyksessä suoritettavaksi. Kun muistetaan, että ohjelmointi on yksinkertaisimmillaan ohjeiden antamista tietokoneelle, voidaankin todeta, että olemme luoneet ensimmäisen – joskin äärimmäisen yksinkertaisen – ohjelmamme.



Scratch sisältää työkaluna hyvin monenlaisia ominaisuuksia, joihin kannustamme syventymään omatoimisesti. Erityisen hyödyllisiä editorin käytön opettelussa ovat Scratchin oma aloittelijaystävällinen perehdytysopas kuin myös sivuston tarjoamat opetusvideot. Tässä materiaalissa keskitytään kuitenkin vain ohjelmoinnin opettelun kannalta oleellisiin toimintoihin. Scratchin käytön kannalta yleishyödyllistä on silti käydä läpi ohjeet Scratch-käyttäjätilin luomiseksi sekä editorissa luodun projektin tallentamiseksi ja lataamiseksi. Nämä taidot opittuasi voit nimittäin ohjelmoinnista taukoa pitäessäsi tallentaa työsi ja jatkaa sitä myöhemmin jopa eri tietokoneelta.

Toistoa toiston päälle

Tähän mennessä oppimamme ohjeet ovat hyvin suoraviivaisia Scratchin valmiiksi määrittelemiä komentoja. Tällaisilla työkaluilla ei voikaan saada yksistään aikaiseksi mitään erityisen jännittävää. Jos haluamme kissamme esimerkiksi edes kävelevän kunnolla eteenpäin, meidän täytyy käskeä sitä suorittamaan samat ohjeet uudelleen ja uudelleen klikkailemalla ohjepalikoita monta kertaa peräjälkeen. Voisiko kissan komentaa suorittamaan nämä ohjeemme automaattisesti vaikkapa kahdeksan kertaa, kun palikoita klikataan vain kerran? Otetaan selvää!

Samojen ohjeiden suorittamiseen useaan kertaan tarvitsemme Ohjaus-valikon alle piilotettua toista 10 kertaa -palikkaa. Valitaan ja raahataan se oikealle muiden ohjepalikkojemme luo. Liitä toista 10 kertaa -palikka paikoilleen siten, että se ympäröi kaikki muut palikat.

Toista 10 kertaa -palikan liittäminen muiden ohjeiden ympärille.

Seuraavaksi muokkaa toista 10 kertaa -palikan toistokertojen määräksi kymmenen sijaan kahdeksan. Tämä tapahtuu samalla tavalla kuin sinisen liiku 10 askelta -palikan arvon muokkaaminen: klikkaa palikan lukua ja kirjoita tilalle uusi arvo. Onnistuttuasi tässä kokeile uuden ohjelmasi toimintaa klikkaamalla palikkarypästä. Kuten huomaamme, kissa suorittaa nyt alkuperäiset kolme ohjetta kahdeksan kertaa.



Scratch-ohjelma, joka saa kissan kävelemään eteenpäin toistoa hyödyntäen.

Nyt olemme kätevästi automatisoineet samojen ohjeiden toistamisen. Kaiken kaikkiaan olemme siis oppineet uuden Scratch-kielisen säännön: kaikki toista n kertaa -palikan sisään käärityt ohjeet toistetaan aina niin monta kertaa kuin palikan numeroarvo määrää. Tästä eteenpäin käytämme aina tilanteen mukaan vaihtuvista palikoiden numeroarvoista kirjainta n. Ohjelmoitava kissamme noudattaa toistosääntöä kuin mitä tahansa muutakin ohjetta. Ohjelmoinnissa tällaista sääntöä kutsutaankin osuvasti toistorakenteeksi. Toistamista itsessään puolestaan kutsutaan usein iteroinniksi. Voit kokeilla sääntömme toimivuutta antamalla toista n kertaa -palikalle myös muita numeroarvoja.





***TÄSSÄ KOHTAA OLI PALAUTUSHARJOITUS***
*****************************************

Katsotaan vielä, millaiselta äskeinen luomamme ohjelma näyttäisi, jos koodaisimme jotain vastaavaa oikealla ohjelmointikielellä. Käytetään tähän Python-kieltä. Tyydytään tässä tapauksessa yksinkertaiseen tekstigrafiikkaan, että ohjelmamme pysyy helposti ymmärrettävänä. Esitetään naukaisu äänen sijaan niin ikään tekstinä.

import kissaikkuna # Otetaan käyttöön työkalut kissan piirtämistä varten.

matka = 4 # Liikutaan neljän pykälän matka joka toistolla.
naukaisu = "miau"

kissa = kissaikkuna.luo_kissa()

for liike in range(8):
    kissa.liiku(matka)
    kissa.naukaise(naukaisu)
    kissa.vaihda_asentoa()

Pythonilla toteutettu versio kahdeksan askelta etenevästä kissasta. Suuri osa ohjelman toiminnallisuudesta on piilotettu niin sanotusti konepellin alle, mutta oleellisin osa on esitetty tässä. Koodin käyttämää kissaikkuna-aputiedostoa voit ihastella täältä, mutta sen sisältöä ei tarvitse ymmärtää.

Ylläoleva Python-tekstigrafiikkaohjelma toiminnassa.

Ei itse asiassa vaikuta äärettömän paljon monimutkaisemmalta! Pythonissa Scratchin ohjepalikkojen virkaa toimittavat tekstirivit koodissa. Tarkasti tutkimalla saatat huomata, että for-sanalla alkava rivi vastaa Python-koodissa Scratchin toista n kertaa -palikkaa. Sisennetyt rivit ovat puolestaan ohjeet, joita toistetaan ohjelmassa tietty määrä kertoja.

Ikiliikkuja

Kokeillaan luoda seuraavaksi hieman erilainen toistorakenne. Tehdään ohjelma, joka käskee kissaa kävelemään ympyrää ja naukumaan, kunnes ohjelman käyttäjä painaa hiiren vasemman näppäimen hetkeksi pohjaan.

Jatketaan äsken kirjoittamamme Scratch-koodin muokkaamista. Poistetaan ensimmäiseksi toista n kertaa -palikka. Tämä onnistuu tarraamalla hiiren osoittimella kiinni sinisen liiku n askelta -palikan värillisestä osasta ja vetämällä ohjepalikat pois toista n kertaa -palikan sisältä. Tämän jälkeen toista n kertaa -palikan voi raahata ja pudottaa takaisin vasemmalle Skriptit-välilehden alueelle.



Toista n kertaa -palikan poistaminen.

Nyt kissamme pitäisi saada jollakin tapaa pelkän eteenpäin kävelemisen sijaan myös kääntymään, jotta se kulkisi ympyrää. Tätä toiminnallisuutta varten aukaistaan Skriptit-välilehden alta Liike-valikko ja valitaan käänny n astetta -palikoista se, jonka nuoli on kiertynyt myötäpäivään. Liitetään tämä palikka käytössä olevien ohjepalikoidemme alle muuttamatta sen lukuarvoa. Testaa tätä muokattua ohjelmaa klikkaamalla yhtä palikoista.



Tämänhetkinen ohjemamme suorituksen alla.

Muutoksemme saivat aikaan sen, että kissa kääntyy nyt ohjelman lopuksi 15 astetta myötäpäivään. Klikkaamalla ohjepalikoita vielä muutaman kerran, voitkin todeta, että kissan liikerata alkaa lähestyä ympyrää. Jos siis onnistuisimme jotenkin kertomaan kissalle, että sen täytyy toistaa näitä antamaamme neljää ohjetta, kunnes ohjelman käyttäjä painaa hiiren vasenta näppäintä, lopputulos olisi halutun mukainen. Voit palauttaa kissan takaisin vaaka-asentoon klikkailemalla Liike-valikon alta löytyvää, vastapäivään osoittavaa käänny 15 astetta -palikkaa.

Jotta voisimme automatisoida ohjeiden toiston, kunnes jokin tietty ehto – tässä tapauksessa hiiren näppäimen painaminen – käy toteen, täytyy meidän ottaa käyttöön uusi ohjepalikka. Etsi siis Ohjaus-valikon alta ”toista kunnes” -tekstin sisältävä palikka ja liitä se ohjelmaamme siten, että se ympäröi muut palikat.



Toista kunnes -palikan liittäminen muiden ohjeiden ympärille.

”Toista kunnes” -alkuinen ohjepalikka eroaa aiemmasta toista n kertaa -palikasta siten, ettei se toista ympäröimiään ohjeita tietyn lukumäärän verran vaan niin kauan, kunnes sille annettu ehto täyttyy. Tämä ehto pitää määritellä palikalle sen tyhjään kuusikulmion muotoiseen aukkoon. Käytämme ohjepalikoihin liitetyistä ehdoista tästä eteenpäin merkintää x.

Koska ehtomme oli hiiren näppäimen painaminen, aukaistaan Tuntoaisti-valikko. Täältä löydämme palikan, jossa lukee ”onko hiiren nappi painettu?” Tämän palikan voimmekin asettaa toista kunnes x -palikalle ehdoksi, jonka täyttyessä ympäröityjen ohjeiden toisto lopetetaan. Ehdon seurauksena toista kunnes x -palikka toistaa siis ohjeita niin kauan, kunnes käyttäjä painaa hiiren nappia.

Valitaan onko hiiren nappi painettu? -palikka ja viedään se toista kunnes x -palikan tyhjän aukon kohdalle. Aseta palikka tarkasti aukon päälle, kunnes aukko hehkuu valkoisena, ja pudota palikka paikalleen.



Onko hiiren nappi painettu? -palikan liittäminen toista kunnes x -palikan ehdoksi.

Kun ehto on asettunut osaksi toista kunnes x -palikkaa, testaa ohjelmaasi. Voit lopettaa kissan tallustelun painamalla hiiren vasemman näppäimen hetkeksi pohjaan. Ohjelman suorituksen voi lisäksi Scratchissa lopettaa kesken punaisesta stop-liikennemerkkiä muistuttavasta kahdeksankulmiosta tai klikkaamalla sen ohjepalikoita uudestaan.

Huomaa, että toista kunnes x -tarkistaa ehtonsa vain kerran jokaista toistokertaa kohden. Toisin sanoen, jos ehto ”Onko hiiren nappi painettu?” käy toteen, kaikkien palikan sisällä olevien ohjeiden suoritus toistetaan vielä kerran. Kesken niiden suorituksen ehtoa ei tarkisteta, joten jos käyttäjä painaa hiirennäppäintä hyvin nopeasti tällä välillä, ohjelma ei havaitse, että näppäintä on painettu.

Ihaillaan vielä vastaavaa Python-kielistä toteutusta, joka saa tekstigrafiikalla piirretyn kissan kiertämään ympyrää ja naukumaan, kunnes ohjelman käyttäjä painaa hiiren näppäintä. Kiinnitetään jälleen huomiota ohjelman yhdenmukaisuuksiin Scratch-koodimme kanssa.

import kissaikkuna # Otetaan käyttöön työkalut kissan piirtämistä varten.

matka = 4 # Liikutaan neljän pykälän matka joka toistolla.
naukaisu = "miau"
kulma = 15 # Käännytään 15 astetta joka toistolla.

kissa = kissaikkuna.luo_kissa(2, 15) # Kissa aloittaa pisteestä (2, 15).

while not kissaikkuna.onko_hiirtä_painettu():
    kissa.liiku(matka)
    kissa.naukaise(naukaisu)
    kissa.vaihda_asentoa()
    kissa.käänny(kulma)

Pythonilla toteutettu versio ympyrää pyörivästä kissasta.



Ylläoleva koodi saa aikaan tällaisen tekstigrafiikkaohjelman.

Erityisesti on syytä painaa merkille, että toista kunnes x -toistorakennetta vastaa Python-kielessä while-sanalla alkava rivi. Pythonin while-rakenne tosin eroaa toista kunnes x -palikasta siten, että se toistaa ohjeita, kunnes sille annettu ehto lakkaa olemasta tosi. Ohjelmassa toistettavat ohjeet on jälleen erotettu muusta koodista sisennyksellä.

Silmukat, ohjelmoijan vuoristorata

Tähän mennessä olemme käyttäneet toistoihimme kahta erilaista sääntöä:

  1. Annettuja ohjeita toistetaan tietty määrä kertoja.
  2. Annettuja ohjeita toistetaan, kunnes tietty ehto täyttyy.

Nämä säännöt muodostavat kaksi perustavanlaatuista ohjelmoinnissa käytettävää toistorakennetta.
Tavallisesti ensimmäistä sääntöä sovelletaan tilanteissa, joissa toistojen määrä on tarkkaan etukäteen määriteltävissä. Tällainen toistorakenne vastaa luonnollisella kielellä lauseita ”Toista –– kertaa”, ”Toista niin monta kertaa kuin ––” ja ”Toista jokaista –– kohden”. Sääntöä numero 2 puolestaan sovelletaan tavallisesti tilanteissa, joissa toistojen määrä riippuu jostain ennakoimattomasta tekijästä, kuten käyttäjän hiiren näppäimen painalluksesta. Tällainen toistorakenne kääntyykin luonnolliselle kielelle lauseeksi ”Toista, kunnes ––”, kuten aiemmin huomattiin.

Molemmista toistorakenteista löytyy myös yksinkertaisia esimerkkejä tosielämästä. Esimerkiksi liikuntatunnilla ensimmäistä sääntöä voisi vastata opettajan antama ohje: ”Jokainen ryhmän jäsen yrittää kolme kertaa heittää vuorollaan korin.” Toista sääntöä puolestaan voisi vastata ohje: ”Syötelkää palloa kahdestaan toisillenne maata pitkin, kunnes minä puhallan pilliin.”

Toistakaa niin monta kertaa, kuin on ryhmän jäsenten lukumäärä kerrottuna kolmella:
    - Jonon ensimmäinen jäsen on vuorossa.
    - Vuorossa oleva ryhmän jäsen yrittää heittää korin
    - Vuorossa oleva ryhmän jäsen noutaa pallon.
    - Vuorossa oleva ryhmän jäsen palauttaa palon jonon ensimmäiselle jäsenelle.
    - Vuorossa oleva ryhmän jäsen asettuu jonon perälle.

Toistakaa niin kauan, kunnes opettaja puhaltaa pilliin:
   - Pallollinen pelaaja on pelaaja 1, hänen parinsa on pelaaja 2.
   - Pelaaja 1 syöttää pallon pelaajalle 2 maata pitkin.
   - Pelaaja 2 ottaa syötön vastaan.

Liikuntatunnilla annetut ohjeet toistorakenteen muotoon puettuna.

Näille oppimillemme toistorakenteille on ohjelmoinnissa myös toinen yleisesti käytetty nimi: silmukat. Kun pohdimme esimerkiksi järjestystä, missä Scratch-kissa suoritti sille ohjeistamamme toistorakenteen, voimme hahmotella mielessämme paikalle kuvaannollisen silmukan.



Scratch-toistorakenne silmukan muodossa hahmoteltuna.

Tietokone suorittaa siis silmukan sisältämät ohjeet tavallisesti useita kertoja peräkkäin. Yhtä tällaista suorituskertaa kutsutaan puolestaan silmukan kierrokseksi. Scratch-ohjelmassamme yksi kierros koostuu siitä, kun kissa

  • liikkuu eteenpäin 20 pykälää,
  • naukuu,
  • vaihtaa asentoa
  • kääntyy 15 astetta.

Kun silmukkaa käydään läpi tarpeeksi monta kierrosta, kissa käveleekin kokonaisen ympyrän.

Havaitsimme myös toista kunnes x -toistorakennetta käyttäessämme, että silmukkaan voi sisältyä ehto. Näitä ehtoja voikin olla hyvin monenlaisia. Perehdymme niihin syvällisemmin seuraavissa luvuissa.

Soveltaminen

Tässä vaiheessa olet saanut riittävät eväät Scratchin käyttöön ja toistorakenteisiin, jotta pystyt jo luomaan ohjelmia omatoimisesti. Seuraavat tehtävät havainnollistavat, mitä kaikkea muuta Scratchissa silmukoilla voikaan saada aikaan. Nämä pulmat ovat verrattain yksinkertaisia, mutta niidenkin parissa on hyvä muistaa muutama järjestelmällisen ongelmanratkaisun perusperiaate:

  1. Pyri ymmärtämään ongelma: mitä tarkalleen ottaen kysytään ja mitkä asiat ovat ratkaisemattomia?
  2. Pohdi eri lähestymistapoja ongelman ratkaisemiseksi käytettävissä olevilla työkaluillasi.
  3. Testaa näitä lähestymistapoja rohkeasti. Asioiden uskalias kokeileminen on aina parempi, kuin olla tekemättä mitään!
  4. Tarkastele lähestymistapojen seurauksia: opittiinko jotain uutta, joka vie lähemmäksi ratkaisua?

Huomaa, ettei tehtävissä myöskään vaadita asioita, joita ei vielä olla opetettu, ellei niin erikseen mainita. Tehtävien yrityskertoja ei ole rajoitettu, vaan tarkoitus on hioa ratkaisua niin kauan, kunnes se on oikein.

Tehtävä 1: Silmukasta vauhtia

Luodaan ohjelma, jossa hyödynnetään kaikkea tähän asti oppimaamme. Haluamme kissan kävelevän edelleen ympyrää ja naukuvan, kunnes käyttäjä painaa hiiren vasenta näppäintä, aivan kuten edellä luomamme koodi sai aikaan.

Nyt laajennamme kuitenkin ohjelman toiminnallisuutta. Käyttäjän painettua hiiren näppäimen pohjaan, kissan pitää lopettaa pyöriminen ja kävellä suoraan eteenpäin siihen suuntaan, johon se sillä hetkellä osoittaa, kahdeksan toiston verran. Jokaisella näistä toistoista liikutaan 20 pykälää, naukaistaan ja vaihdetaan asentoa. Kun kissa on kävellyt tämän matkan, ohjelma loppuu.



Ole tarkkana ohjelmaa testatessasi, ettet klikkaa hiiren näppäintä osoittimen ollessa ohjelman ohjepalikoiden päällä. Ohjepalikoiden klikkaaminen uudelleen lopettaa nimittäin ohjelman suorituksen, joten vedä osoitin testauksen ajaksi sivuun. Jos kissa karkaa kokonaan ruudun ulkopuolelle ohjelmaa työstäessäsi, voit palauttaa sen takaisin painamalla Liike-valikosta aseta x:lle arvo 0- ja aseta y:lle arvo 0 -palikoita. Näitä palikoita ei tarvita itse ohjelmassa.



Liike-valikon alta löytyviä aseta arvo -palikoita klikkaamalla voit palauttaa kissan keskelle aluettaan.

Tehtävä 2: Takapakkia

Luo ohjelma, joka komentaa kissaa kävelemään eteenpäin kuuden toiston verran, vaihtamaan sen jälkeen kertaalleen väriä ja kävelemään takaperin kuuden toiston verran takaisin alkuun. Jokaista toistoa kohden liikutaan 20 pykälää, naukaistaan ja vaihdetaan asentoa. Värin vaihtamiseksi voit käyttää Ulkonäkö-valikon alta löytyvää ”muuta väritehostetta määrällä 25” -palikkaa. Palikkaan ei tarvitse tehdä muutoksia.



Tehtävä 3: Kuin miljoona volttia

Luo ohjelma, joka saa kissan hypäämään eteenpäin viiden voltin verran. Jokaista volttia ennen liikutaan 30 pykälää ja naukaistaan. Tässä tehtävässä kissan asentoa ei kuulu vaihtaa.

Käytä volttien toteuttamiseksi 45 asteen käännöstä myötäpäivään. Montako kertaa käännös pitää toistaa yhtä volttia kohden, jotta kissa kierähtää takaisin alkuasentoonsa, kun yksi kokonainen pyörähdys on yhteensä 360 astetta? Miten käsket kissaa tekemään voltin viisi kertaa?



Leikki-idea opetukseen

Tässä luvussa olemme luoneet ensikosketuksen ohjelmointiin. Tärkeimpänä opetuksena muistettakoon, että yksinkertaisimmillaan ohjelmointi on ohjeiden antamista tietokoneelle. Tämän ajatuksen pohjalta voimmekin esitellä leikin, jolla ohjelmoinnin periaatteita on helppo havainnollistaa kaiken ikäisten keskuudessa. Leikki toimii siten, että sen vetäjä, esimerkiksi opettaja, näyttelee robottia, jota muiden leikkiin osallistuvien on ohjastettava suorittamaan erilaisia tehtäviä. Leikin vetäjä suorittaa ohjeet kuten tietokone eli kirjaimellisesti täydentämättä puutteellisia ohjeita.



Englantilaisen koulun lapset opastavat opettajan esittämää robottia tekemään hillovoileivän.

Toisin kuin yllä olevassa videossa, hillovoileivän tekemisen sijaan tehtävänä voi luonnollisesti olla myös jotain vähemmän sotkuisaa, kuten tornin rakentaminen palikoista, robotin ohjastaminen määrättyä reittiä maaliin, kuvan piirtäminen liitutaululle, tai mitä ikinä mieleen sattuu juolahtamaan!

Kuvalähteet

  1. Mae scratching her back, Donnie Ray Jones, lisenssi: CC BY 2.0, muokkaus: teksti lisätty, ruohoa muokattu
  2. Who Needs Norton 360?, Tony Alter, lisenssi: CC BY 2.0, muokkaus: teksti lisätty
  3. winnie 014 accountant kitty is not amused, apium, lisenssi: CC BY 2.0, muokkaus: teksti lisätty
  4. Tail Biter, Amy, lisenssi: CC BY 2.0, muokkaus: teksti lisätty