esmaspäev, 29. jaanuar 2018

Scratch ja muusika

Scratchis võivad tegelased mängida ka helisid. Kui valite tegelase teegist muusikainstrumendi, siis lisanduvad helivalikusse ka sellele muusikariistale sobivad helid.

Lisa trumm ja programmeeri sellele rütm! Üks näide:

Kui lisad erinevaid rütmipille (Uus sprait -> muusika galeriist), siis saad tekitada terve rütmitausta.

Teiste pillide puhul saad panna nad viisi mängima. Viisi võid programmeerida ise, nii et klahvivajutuse või spraidil klõpsamise peale mängitakse maha terve viisijupp.

Kui soovid, võid iga klahvivajutuse alla panna kindla noodi ja siis saad klahve vajutades muusikariista ise mängida.

Lisaks on võimalik heli ka ise salvestada (võid näiteks teksti peale lugeda, mida tegelane ütleb). Selleks peab olema arvutiga ühendatud mikrofon (kooli kõrvaklappide mikrofon ei pruugi töökorras olla, aga katsetada tasub).


  • Lisa oma programmi mõned rütmipillid (trummid jms) ning pane nad rütmi mängima. 
  • Lisa klaver või süntesaator, ja pane ta mängima heliredelit.

  • Lisa mõni muu pill ja programmeeri see kas klahvivajutuse peale kindlat nooti mängima või siis selliselt, et näiteks pillil klõpsates mängiks ta terve viisijupi korraga.
    • NB! Kui programmeerid klahvid kindlat nooti mängima, siis pane see hiljem programmi kirjeldusse kirja, et teised ka teaksid, kuidas Sinu pilli mängida.
  • Pane oma programmile nimeks Muusika ja jaga oma programmi ning lisa see oma rühma Stuudiosse (link ringi blogis paremal menüüs).


Allolev skript mängib ühe tuntud lastelaulu algust. Mis laul see on?



esmaspäev, 8. jaanuar 2018

Loendid

Oleme tutvunud Scratchis muutujatega, täna vaatame Andmete plokis olevat teist võimalust - loendi loomist.

Loend on järjestatud andmete kogum, kus andmetele viidatakse või kutsutakse neid välja loendi nime ja viitenumbriga (andmete järjekorranumber loendis).

Ülesanne
Täna proovime luua lihtsa inglise keele testi, kus kasutajalt küsitakse sõnu ning tema peab kirjutama neile inglisekeelsed vasted. Lõpuks saab kasutaja teada, kui mitu % sõnadest ta õigesti vastas.


1. Loo loend nimega "eesti" (Andmed -> Loo loend)
Lavale ilmub hall kast, selle allnurgas oleva + märgi kaudu saab loendisse uusi elemente lisada.
2. Lisa loendisse vähemalt 5 sõna, mille ingliskeelset vastet sa tead.
3. Lisa loend "inglise" ning kirjuta sinna samas järjekorras, nagu loendis "eesti" sõnad inglise keeles.
4. Edasi loo muutujad sõnade arvu, õigete vastuste, sõnade järjekorranumbri ja protsendiarvutuse jaoks.
5. Skripti alguses paneme järjekorranumbri, protsendi ja õigete vastuste väärtused võrduma 0-ga. Sõnade arvu (sõnad) väärtuseks aga paneme loendi "eesti" pikkuse.
6. Edasi tuleb küsida loendist "eesti" esimene element. Küsimise tsükkel näeb välja selline.
7. Lisa loendi algusesse ka viisakas pöördumine kasutaja poole ning lõpus arvuta kokku õigete vastuste protsent ning ütle see kasutajale!

Lisaülesanne: Kui soovid, et lisaks protsendile teataks programm ka sellele vastava tähe, siis pead oma programmi alljärgneva joonise järgi täiendama.

Rasmus Kaldma loovtööks loodud õppevideo sõnade õppimise mängu tegemise kohta.

laupäev, 6. jaanuar 2018

Andmete sisestamine loendisse ja nende lugemine

Loendit saab kasutada ka nii, et programm sisestab ise sinna oma töö käigus andmeid (näiteks kasutaja poolt sisestatud numbreid, et siis leida sisestatud arvudest suurim vms). Selleks tuleb luua tühi loend ning kasutada loendi käsuplokki



Ava eelmisel tunnil tehtud ülesanne. Ilmselt märkasid juba, et selle ülesande puhul küsitakse kasutaja käest sõnu kogu aeg samas järjekorras!
Kui lisasime sinna juhuarvulise sõnavaliku, siis hakkasid osad sõnad korduma (mis ilmselt sõnade õppimise seisukohalt polegi nii väga halb variant).

Ülesanne
Täienda eelmisel tunnil tehtud sõnade küsimise skripti nii, et sõnu küsitakse suvalises järjekorras nii, et ükski sõna ei korduks!


1. Loo loend nimega "arv" - see loend jääb esialgu tühjaks, sinna hakkab programm lisama väärtuseid (meie näite puhul loendi "eesti" andmete järjekorranumbreid).
2. Skript töötab selliselt, et iga uue järjekorranumbri puhul kontrollitakse, kas see on juba loendis olemas (esimesel korral ei ole). Kui ei ole, siis lisatakse loendisse ning küsitakse kasutajalt selle järjekorranumbriga sõna (ja kontrollitakse vastavust inglisekeelse loendiga).
Juhul kui järjekorranumber on juba loendis olemas, siis võetakse uus (juhuslik arv vahemikus 1 - küsitavate sõnade arv) ja kontrollitakse uuesti.

"arv" on tühi loend ning tsükkel peab töötama seni, kuni selle liikmete arv saab võrdseks näiteks sõnu sisaldava loendiga.

Edasi tuleb kontrollida, kas nr väärtus (juhuslik arv vahemikust) on juba loendis olemas (pildil ülemine plokk). Juhul kui on, siis tuleb võtta uus juhuarv ning kontrollida uuesti.


3. Lisa kindlasti ka käsklus loendi tühjendamiseks skripti algusesse, muidu saad skripti käivitada vaid ühe korra.

Ülesanne 2
Täienda oma skripti nii, et see küsiks kasutajalt alguses, mitu sõna ta soovib vastata (anna ette ka vahemik, see ei saa olla suurem, kui sinu sõnade loend) ning küsib tema käest loendist suvaliselt nii palju sõnu!



Selleks tuleb lisada programmi lõik, mis kontrollib, kas sisestatud arv jääb loendis olevate sõnade arvu piiresse.
Kui jääb, siis hakkab ülejäänud skript tööle, aga korduste arv tuleb nüüd võrdsustada kasutaja poolt sisestatud vastusega (võtab loendist nii mitu erinevat sõna, kui kasutaja vastata soovib).

neljapäev, 4. jaanuar 2018

Andmete sisestamine loendisse kasutaja poolt

Ülesanne

Täienda oma sõnade õppimise mängu nii, et mängija saaks ise soovi korral sõnad sisestada, mida ta õppida soovib!

Näide



Vihje



  1. Loendid eesti ja inglise tuleb enne sisestamist tühjendada!
  2. Alguses tuleb küsida, kui mitu sõna on soov sisestada ning siis korrata sisestamise tegevust nii mitu korda.
Lisaülesanne
Kui sõna on vale, siis anna kasutajale teada õige sõna!