teisipäev, 20. detsember 2016

Joonistamine (ilutulestik)

Täna vaatame joonistamise tööriista. Scratchis on võimalik spraidiga lavale joonistada (vastavalt etteantud programmile või siis näiteks nooleklahve kasutades spraiti juhtides - vt. http://viimsiproge.blogspot.com/2014/10/5-tund-tegelaste-juhtimine-klaviatuuri.html).
Oluline on teada, et joon jääb nähtavaks siis, kui pliiats on all (pliiats alla) ning joonistamine (joone näitamine) lõpeb siis, kui pliiats on üleval (pliiats üles).

Kogu joonistuse kustutamiseks on käsklus "kustuta" (see kustutab ära kõik jooned, mitte ainult viimase).

Jäljend teeb objektist koopia ehk jätab maha objektikujulise jälje. Erinevalt kloonist ei saa jäljendeid eraldi programmeerida. Kõik jäljendid saab kustutada "kustuta" nupuga.

Ülesanne 1 - ilutulestiku loomine
Laval suvalises kohas klõpsates "plahvatab" seal iga kord erinevat värvi "ilutulestik".
  1. Loo uus projekt ning vali taustaks näiteks öine linn, eemalda kass. Pane projektile nimeks "ilutulestik".
  2. Lisa joonista sprait, mis koosneks 5-6 punktikesest. Spraiti joonistades vaata, et punktikesed satuksid enam-vähem ümber keskpunkti tähistava ristikese! Ristikese nägemiseks joonistusvälja paremal all olevat suurendusnuppu!
  3. Selleks, et ilutulestik ilmuks laval seal, kus parasjagu hiirega klõpsati, tuleb kirjutada lavale skript (klõpsa laval ja vali "skriptid"), mis saadaks peale klõpsamist ilutulestikule teate, et siin tuleb "plahvatada". 
  4. Plahvatamisel peaks sprait (täpikesed) alguses olema väike (võta suuruseks näiteks 5%) ning siis jäljendit jättes järjest suurenema (näiteks 20 korda ning muuda suurust 10 võrra).
  5. Selleks, et "ilutulestik" oleks iga kord erinevat värvi, lisa värvi efekti plokk selliselt, et iga kord võetakse erinev värv (kasuta juhuarvu vahemikus 1 kuni 255).
  6. Loo võimalus "ilutulestiku" kustutamiseks ehk lava puhastamiseks. Selleks kasuta "kustuta" käsklust, mis võiks käivituda näiteks tühiku vajutamisel.


J. Vilipõllu tööleht 

Ülesanne 2 - erinevad ilutulestikud
Laval suvalises kohas klõpsates "plahvatavad" seal erinevad "ilutulestikud".
  1. Täienda eelmist projekti teist tüüpi "ilutulestikuga". Selleks, et erinevat tüüpi ilutulestikud ei "plahvataks" kõik ühest kohast, tuleb kasutada muutujat, mis käivitab iga kord ainult 1 "ilutulestiku".
  2. Erinevat tüüpi ilutulestiku saamiseks katseta näiteks sellega, et lisa eelmise ilutulestiku kordusskripti juurde pööramine. 
  3. Kui lisad korduskripti y koordinaadi muutumise näiteks -3 võrra, siis saad allapoole langeva ilutulestiku.
Näide:

esmaspäev, 19. detsember 2016

Animeeritud jõulukaardi valmistamine

Jõulukaart

Täna proovime Scratchiga teha animeeritud jõulukaarti ja seda siis ka avalikustada nii, et saate tuttavatega jagada.
1. Ava Scratch keskkond ning loo uus projekt.

2. Otsi internetist üks ilus jõulupilt või kasuta taustapildina Scratchi enda taustu.
Vabalt kasutamiseks mõeldud pilte leiad:  https://pixabay.com/ ja https://www.pexels.com/ (fotod), https://openclipart.org/ (animatsioonid)
Taust salvesta arvutisse ja siis lae sealt Scratchi keskkonda üles.
Samuti võid tausta ise joonistada, kasutades Scratchi joonistusvahendeid.

NB! Kui soovid, et näiteks internetist leitud pildil olevad tegelased "räägiksid", siis tuleb sama taust ka tegelasena Scratch keskkonda üles laadida ning tegelane sealt lihtsalt välja lõigata (kustuta ülejäänud taust ära) ning siis sättida, et ta taustapildil õigel kohal oleks.

3. Lisa pildile tegelased, kes liiguksid ja ütleksid midagi (näiteks "Häid jõule" vms).

Programmi saab lisada ka muusikat. Vabalt kasutamiseks mõeldud helifaile leiad: http://viimsiharidustehnoloog.blogspot.com.ee/2017/09/tasuta-helifailide-pangad.html

4. Lisa pildile lumehelbed. 
Pidevalt "alla kukkuvate" lumehelveste tegemiseks saad kasutada joonemängu kukkuva "õuna" skripti.
Paljunda lumehelbeid ning muuda nende skripti nii, et osa muudaksid kukkudes värvi, osa liiguksid nagu lumehelbed vabalt langedes lisaks allapoole liikumisele veel ka vasakule ja paremale (liugleksid).

5. Kui jõulukaart on valmis, siis avalikusta see (nupp "Jaga") ja lisa oma rühma Stuudiosse.

Näide:



Lisaülesanne - taustamuusika lisamine
http://multimeediaring.blogspot.com/2012/11/muusika-lisamine-videole-voi-piltidele.html

pühapäev, 18. detsember 2016

Mäng agar.io ainetel

Täna proovime valmis teha mängu lihtsustud versiooni, kus üks "täpp" sööb teisi täppe ja muutub seeläbi ise järjest suuremaks.

Ülesanne 1

  1. Loo uus projekt ja eemalda sealt kass.
  2. Joonista uus täpikujuline sprait - see, millega hakkad teisi täppe püüdma
  3. Joonista teine täpikujuline sprait - see, mida hakatakse sööma.
  4. Programmeeri mängutäpi liikumine (täpp liigub hiirekursori suunas, lisa ka kontroll, et ta hiirekursori juurde jõudes lõpetaks liikumise ehk siis liiguks ainult siis, kui kaugus hiirekursorist on teatud numbrist suurem).

  1. Loo muutuja (näiteks nimega "suurus"), mis hakkab mängutäpile suuruse muutmiseks märku andma. Muutuja peab olema kindlasti kõikide spraitide jaoks kättesaadav.


"Söögiks" olevate täppide tekitamiseks on kõige parem kasutada kloonimist. Täpp teeb endast teatud aja järel koopia ning et neid koopiaid liiga palju ei saaks, siis veidi aja pärast ka kustutab ennast.


Samad täpid saab panna ka reageerima kokkupuutele mängutäpiga.
Muutuja "suurus" tuleb lisada mängutäpi skripti, et mängutäpi suurus teise täpi puudutamisest ("ära söömisest") muutuks.

Kui soovid, et täpid vahepeal ka kaoks, siis lisa "söögitäppide" skripti kloonide kustutamine.

Ülesanne 2
  1. Lisa mängutäpile ka kontroll, et kui ta läheb liiga suureks, siis annaks mäng sellest teada ja lõpetaks (või muudaks mängutäpi tagasi algsuurusesse).
Ülesanne 3
  1. Mõtle, kuidas muuta programmi nii, et mida suuremaks muutub mängutäpp, seda aeglasemalt ta liikuma hakkab! Vihje: muutuja nimega "kiirus".




teisipäev, 13. detsember 2016

Matemaatikamäng

Ülesanne 1

Loo matemaatikamäng, kus mängija käest küsitakse erinevaid matemaatikatehteid (5-10 erinevat) ja antakse tagasisidet, kas vastus oli õige või vale.
Anna mängijale mängu alguses teada, mitu tehet temalt küsitakse.

Näiteid programmi koostamiseks leiad siit.

Vihje: et programm küsiks iga kord erinevate arvudega tehteid, siis kasuta juhuarvu! Kuna pead programmi alguses päris tihti ka testima, siis alusta näiteks vahemikuga 1 ... 10.


Selles näites loeb punkte muutuja nimega "loendur". Uusi tehteid küsitakse seni, kuni vastaja on kogunud 3 punkti. Iga vale vastuse eest võetakse punkt maha.



Ülesanne 2

Lisa oma matemaatikamängu muutuja, mis loendaks õigeid vastuseid.
Anna mängijale peale vastamist teada, mitu vastust tal õiged olid (osavamad võivad anda teada ka õigete vastuste % ja näiteks sellele vastava tähe).


Ülesanne 3

Disaini oma mängule sobiv taust, mõtle välja algus ja lõpp ja kujunda vastavalt kas lavapildid või pane tegelane ütlema vastavaid teateid.


NB! Jaga oma mängu Stuudios!

Ideid matemaatikamängudeks!



Täiusta oma mängu ("levelid", erineva tehted) ja esita see kooli programmeerimisvõistlusele!








teisipäev, 22. november 2016

Muutuja lisamine Scratchis

Selleks, et programm saaks sisestatud andmeid (kasutaja vastus, mõni välja arvutatud tulemus) ka edaspidi kasutada, tuleb kasutusele võtta muutujad.


Muutuja on nimega varustatud koht arvuti mälus, kuhu saab salvestada mingi väärtuse, näiteks arvu, teksti jms. Seda väärtust saab programm edaspidi kasutada, näiteks kuvab kogutud punktid, arvutab uue väärtuse või käivitab järgmise protsessi (kui muutuja väärtus saab võrdseks mingi muu väärtusega).
Muutujate lisamiseks Scratchis tuleb klõpsata nupul "Andmed" ning edasi "Loo muutuja".
Selleks, et muutujat saaks programmis edasi kasutada, tuleb anda talle nimi. Nime andmisel on üldine reegel (kehtib ka teistes programmeerimiskeeltes), et muutuja nimi peab koosnema ühest tähest või tähtede ja numbrite jadast, mis peab algama tähega. Nimes ei tohi olla tähtedest ja numbritest erinevaid märke (tehtemärgid, kirjavahemärgid, sulud jmt), välja arvatud allkriipsud. Nimes ei tohi olla ka tühikuid.

Peale muutuja lisamist tekivad "Andmed" jaotuse alla lisaplokid, mida saab programmi tegemisel kasutada.
Muutujate loomise juures on valikud:
  1. Kõikide spraitide jaoks - muutujat saavad kasutada kõik programmi spraidid ja lava ehk muutuja muutumist saab kasutada kõikide nende skriptides. Selliseid muutujaid nimetatakse globaalseteks muutujateks.
  2. Ainult selle spraidi jaoks - muutujat saab programmis kasutada ainult see sprait, mis oli muutuja loomise hetkel valitud. Teiste spraitide ja lava jaoks ei ole see muutuja kättesaadav. Selliseid muutujaid nimetatakse lokaalseteks muutujateks.
NB! Punktide kokkulugemisel tuleb need enamasti mängu/ programmi mingis osas ka uuesti nullida!


Ülesanne 1.
Jätkame eelmisel tunnil tehtud projekti 

  1. Lisa globaalne muutuja (kõikide spraitide jaoks) nimega punktid
  2. Täienda programmi nii, et kokkupuutel lendava objektiga ("kukkuv õun") saab juurde 1 punkti. 
    • Kokkupuutel antakse punkte seni, kuni spraidid kokkupuutes on, selle vastu aitab, kui näiteks kukkuv sprait peale kokkupuudet peidetakse.
  3. Täienda programmi nii, et kokkupuudel väljaspoole teed jääva alaga läheb iga kord 1 punkt maha.
Ülesanne 2.
Lisa "levelite" vahetuseks kontroll, et edasi saab ainult siis, kui kogutud on piisaval arvul punkte!

teisipäev, 15. november 2016

Joonejärgija mäng (edasiarendus)

Jätkame joonejärgimise mängu täiustamist.

Uue "leveli" loomine ja märguanne "leveli" vahetuseks

Joonejärgimise mängus tuleb uue "leveli" jaoks joonistada uus taust (Lava -> Taustad -> Uue tausta joonistamine ehk pliiatsi märk) või teha olemasolevast taustast koopia (paremhiireklõps taustal -> paljunda) ning seal joont muuta.

Päästiku lisamine "leveli" vahetuseks

Selleks, et joone lõppu jõudes taust vahetuks (kuvatakse järgmine, keerulisem taust), on mitu võimalust
- võib määrata liigutatava spraidi asukoha koordinaadid ja öelda, et kui tegelane jõuab teatud punkti (joone lõpp), siis taust vahetub

- võib joonistada taustale joone lõppu teist värvi riba ja öelda, et kui tegelane puudutab seda värvi, siis taust vahetub


- võib teha uue spraidi (võib olla mingi kujuga, näiteks uks, aga võib olla ka lihtsalt riba) ja öelda, et kui tegelane puudutab seda spraiti, siis taust vahetub

Ülaltoodud võimalused tuleb siis lisada liikumise skripti sisse tingimuslausena (kui ... siis).

Lava kostüümide (taustad) vahetumised peaksid algama teate peale. Kui kostüümid on järjest, siis sobib ka välimuse alt klots "järgmine taust".


Tegelaste näitamine ja peitmine

Mängu käigus tuleb tegelasi ka peita. NB! Kui kasutad välimuse alt "peida" klotsi, siis tuleb kusagile kindlasti lisada ka "näita" (vähemalt mängu algusesse, sest muidu jääb tegelane peale esimest läbimängimist peidetuks).

Lisame mängule ühe tegelase (näiteks õuna), mis ilmub lava ülemisest servast ja langeb alla. Hiljem saame selle tegelase siduda punktide saamisega, aga esialgu paneme ta lihtsalt liikuma.

Õuna ilmumine on siin seotud teatega "liigu", mille peale õunad kukkuma hakkavad.
Alguses tuleb määrata punkt, kus õun nähtavale ilmub (lava ülemine serv, y-koordinaat peaks alloleva näite puhul olema selline, et õun lava serva ei puudutaks, sest liikumise lõppemine on kontrollitud serva puutumisega).
Siin saab kasutada juhuarvu klotsi. Juhuarv on etteantud vahemikust juhuslikult valitud arv. Alloleva näite puhul valitakse x koordinaadi väärtus vahemikust -220 kuni 220 ehk siis lava piirid (nii, et õun serva ei puudutaks).

Liikumine lõpeb alumise serva puudutamisel ja siis õun peidetakse, et 2 sekundi pärast jälle lava ülemisest servast teda näidata.

Mängu lõpetamine

Sellest, et mäng läbi sai, oleks hea ka mängijale teada anda. 
Mängu lõpetamiseks on jällegi mitu võimalust:
- luua mängu lõpust teavitav taust ja anda talle nimi (alloleval näitel on sellise tausta nimeks finish). Nüüd saab lisada kontrollploki, et kui tausta nimeks saab lõputausta nimi, siis peatatakse programm ja peidetakse tegelased).
- luua muutuja, mis suureneb "levelite" kasvades ja teatud arvu juures kuvab teate mängu lõppemise kohta (muutujatega tegeleme järgmisel tunnil).

Ülesanne
  • Loo olemasolevale mängule veel 2 "levelit" ja programmeeri nende vahetumine.
  • Loo lavale ka taust lõpp, mis annaks mängijale teada, et nüüd sai mäng läbi.
  • Loo objekt, mis hakkab ülevalt lava servast suvalistest kohtadest alla kukkuma.






teisipäev, 8. november 2016

Programmi suhtlus kasutajaga (parooli küsimine) ja tingimuslaused

Täna proovime panna programmi kasutajaga suhtlema nii, et ta reageeriks kasutaja poolt sisestatud andmetele.
Tingimustega tutvusime veidi juba plokkskeeme joonistades (kui tingimus on täidetud, siis teeb programm midagi, kui ei ole, siis ei tee või teeb midagi muud). Näiteks kui kasutaja sisestatud parool on õige, siis hakkab programm tööle, kui ei ole, siis ei hakka.

Tervitamine ja parooli küsimine

Ülesanne 1

Tegelane küsib kasutaja nime ja peale nime sisestamist tervitab teda nimepidi! Edasi küsib tegelane parooli. Õige parooli sisestamisel hakkab ta tantsima.

Rohelised käsuplokid tulevad tehete alt. Nende abil saab teha matemaatikatehteid, seada tingimusi ja praeguse näite puhul saab kokku liita ka sõnu ehk tekste ühendada.
Tegelase tervitus ja vastus näeb välja selline:
Kui me tahame, et tegelane tegutseks edasi alles peale seda, kui oleme sisestanud õige parooli, tuleb lisada järgmised käsuplokid:
Edasi lisa programmijupp, mis paneks tegelase õige parooli sisestamisel "tantsima".

Spikker
Tantsimine peaks olema korduste plokk (näiteks kordab 10 korda, ära kasuta siin lõpmatut kordust, sest programmi on vaja edasi arendada). Edasine sõltub tegelase valikust. Kui valisid erinevaid kostüüme omava tegelase, siis võid lahendada tantsimise kostüümivahetusega), kui aga tegelase, kellel "tantsuks" mõeldud kostüümid puuduvad, siis pead programmeerima tema liikumise selliseks, et tekiks nn tantsimise efekt.

Ülesanne 2
Kui parool valesti sisestati, siis tegelane ütleb seda (näiteks "Vale parool") ning küsib uuesti (3 korda). Kui parooli on 3 korda valesti sisestatud, siis lõpetab küsimise ja ütleb, et rohkem ei saa parooli sisestada.

Spikker
Lisada tuleb veel üks korduste plokk (korda 3), mille sisse jääks kogu parooli küsimine (korduste plokke saab üksteise sisse panna) ja vastamine "Vale parool".

Lisa oma projektile ka taust (juhul kui Sa ei kasutanud mõne eelmise tunni põhja) ning klõpsa siis nupul "Jaga". 
Lisa oma töö Stuudiosse (ava blogi paremast servast lingi Rühmade lehed alt oma klassi rühma link ning vaata, kuidas seda teha) - siis näeb seda õpetaja ja ka sinu klassikaaslased.


Valmis programmike võiks toimetada nii:

esmaspäev, 7. november 2016

Joonejärgija mäng

Järgmiseks loome mängu, kus nooleklahvidega tuleb tegelast mööda kindla värviga joont liigutada. Joonelt väljaminek või joone ääre puutumine tähendab automaatselt alguspunkti tagasiminekut.

Kui jätkad eelmisel tunnil tehtud parooliküsimise skriptiga, siis peale õige parooli sisestamist peaks skript saatma välja teate, mis vahetaks tausta joonemängule sobivaks ja annaks spraidile teada, et nüüd peab hakkama liikuma.

1. Uue tausta joonistamine


Selleks vali "Lava" ja siis kesmiselt menüüribalt "Taustad". Pliiatsi märgil klõpsates saad luua uue tühja tausta ja siis joonistusvahendeid kasutades sinna ühe joone joonistada.
NB! Tee joon piisavalt paks, et sinu tegelane mahuks seal liikuma!

Nipp! Tegelast on võimalik ka väiksemaks muuta. Selleks võid lisada näiteks tegelase skripti näiteks mängu alustamise teate järele välimuse ploki

Nüüd peaks sul olema 2 tausta. Üks kindlasti see, millel on joon.

2. Lava programmeerimine (taustavahetus).

Lisa Lavale skript, mis võtaks mängu alustades (klõps rohelisel lipul) ette ilma jooneta nö avatausta ja teate saamise peale (sama teade, mis spraidi skriptis peale õige parooli sisestamist käivitab mängu) võtab taustaks joone.

3. Spraidi (tegelane) programmeerimine nooleklahvidega liikuma ja värvile reageerima.

Tegelane peaks teate saades (või mängu alguses) minema laval kindlasse punkti (joone algusesse). Hiirega saad laval spraidi sobivasse kohta nihutada ja siis liikumise plokist õige käsu võtta (koordinaate saad valgetes avaustes muuta).

Edasi tuleb programmeerida tegelase liikumine klahvivajutuse peale. Oled seda ka varasemalt teinud, aga siis programmeerisime kõik klahvivajutused eraldi. Nüüd aga vaatame, kuidas saaks kõik klahvivajutused ühte skripti kokku panna.

Selleks tuleks leida menüüst üles plokk "Andurid". Täna läheb vaja sealt kahte plokki - esmalt "klahv tühik on all?" ja siis ka "puudutab värvi".

Järgmiseks programmeerimine tegelase liikumist nii, et kui nooleklahv "ülesnool" on all, siis liigub tegelane üles.
Lõputu korduse sisse on vaja see tingimus panna selleks, et programm teaks, mis tegevust ta seni kuni klahvi all hoitakse, tegema peab.
Proovi nüüd sarnaselt programmeerida ka alla, vasakule ja paremale liikumine! Tuleta meelde, et parem-vasak liikumise puhul muutus x-koordinaat! Pane kõik plokid lõpmatu korduse sisse!
Värvile reageerimine

Järgmiseks oleks vaja, et kohe kui tegelane rajalt ära läheb, satuks ta tagasi alguspunkti. Selleks kasutame teist andurit - "puudutab värvi ...". Värvi valimiseks klõpsa anduriklotsil oleval värvikastil ning edasi laval vastavalt värvil, millele sprait peab reageerima (näitepildil on selleks roheline värv).

Ka see tingimus tuleb lisada lõpmatu korduse ploki sisse, sest me tahame ju, et tingimust kontrollitakse igal võimalikul hetkel.

Joonemängu skript tervikuna võiks välja näha selline:





teisipäev, 1. november 2016

Tegelaste juhtimine klaviatuuri abil

Kõige tavalisem on see, kui klõpsame rohelist lipukest ning programm hakkab tööle. Samas on võimalik tegelast panna liikuma ka näiteks nooleklahve kasutades.

Selleks tuleb valida "Sündmused" valikust klots "kui vajutatakse klahvi ..." ja valida siis sobiv klahv

Liikumine koordinaatide muutmist kasutades.

Selleks, et tegelane liiguks näiteks "nool üles" klahvi vajutamise peale üles, tuleb esmalt tutvuda koordinaatteljestikuga.

Üles-alla liikumiseks tuleb muuta y-koordinaati. Üles liikumiseks peab y-koordinaat muutuma positiivse sammuga (10) ja alla liikumiseks negatiivse sammuga (-10).

Selleks, et tegelane liiguks "nool üles" klahvi vajutamisel üles, peab muutma y koordinaati mingi kindla sammu võrra. 

Alla liikumiseks tuleb muuta y koordinaati vastavalt -10 (või mõne muu negatiivse arvu) võrra.
Paremale liikumiseks tuleb muuta x koordinaati positiivse arvu võrra (näiteks 10) ja vasakule liikumiseks negatiivse arvu võrra (näiteks -10)

Ülesanne 1

Seadista nooleklahvid nii, et "nool üles" liigutaks tegelast 10 sammu üles, "nool alla" liigutaks 10 sammu alla, "nool paremale" liigutaks 10 sammu paremale ja "nool vasakule" liigutaks 10 sammu vasakule.

Klahvivajutuse alla saab panna ka pikema tegevuse, näiteks sellise, et A-tähe vajutamisel ütleb tegelane "Tere!"

Pane oma tegelane klahvivajutuse peale midagi ütlema!

Ütlemise käsuploki leiad "Välimus" alt.

Täienda oma programmi nii, et tegelane kaoks, kui temal hiirega klõpsad ja ilmub uuesti tagasi, kui klõpsad rohelist lippu!

Vihje! "Välimuse" valikust leiad plokid "näita" ja "peida".

Ülesanne 2

Täienda oma programmi nii, et klaviatuuril mingi klahvi vajutamisel küsiks tegelane sinu nime ning peale nime sisestamist "ütleks" sinu nime.

Nime küsimine ja saadud vastuse kasutamise võimalus on valiku "Andurid" all.
Vastus tuleb sisestada lava alla tekkinud ribale ning vajutada klahvi "Enter".
Vastuse kasutamine näiteks tegelase tekstis toimub nii (NB! Vastuse klots võetakse "Andurite" valikust)

Kui soovid lisada vastusesse rohkem sõnu, siis pead abiks võtma "Tehted" valikust sõnade ühendamise ploki

Lisa oma programmile avaslaid (slaidid), kuhu kirjutad programmi kasutamise juhise (mis klahv mida teeb).
Näiteks: 
nooleklahvidega saate tegelast liigutada üles-alla ja vasakule-paremale
klahvi "A" vajutamisel küsib tegelane teie nime ja ütleb nime sisestamisel "Tere ... nimi".

Vihje!
Loo uus "lava" ja kirjuta sellele tekst. Pane avaslaid vahetuma, kui sellel hiirega klõpsata.


teisipäev, 11. oktoober 2016

Tutvumine Scratchiga

Tunnitöö:
  1. Luua konto keskkonda scratch.mit.edu (juhend http://programmeerimisring.blogspot.com/2013/09/alustame-konto-loomine.html)
  2. Tutvumine keskkonnaga.
  3. Tutvumine põhiliste käsuplokkidega
  4. Ülesanne 1
  5. Ülesanne 2


NB! Palun pange oma Scratch keskkonna kasutajanimi ja pärisnimi Padleti seinale kirja (parooli ütleb õpetaja).
7cde
7abs

Ülesanne 1

Proovi saada tegelane (kass) liikuma nii, et ta liiguks peatumata ühest lava servast teise ning pöörduks serva jõudes ümber.
Lisa. Kostüümivahetust kasutades proovi saada tegelane liikuma nii, et ta liigutaks näiteks jalgu.
Lisa 2. Muuda tegelase skripti nii, et lisaks liikumisele ta vahepeal ka hüppaks.

Ülesanne 2

Lisa oma projektile vähemalt 1 uus taust ning pane see kas valge tausta või siis mõne muu taustaga vahetuma. Üks näide:

Ülesanne 3
Jagage oma tunnitöid ka rühma programmide lehel (vt blogi paremas veerus) 

esmaspäev, 19. september 2016

Hargnev algoritm

Algoritme, kus edasiste sammude täitmine sõltub mingist tingimusest või vahetulemusest, nimetatakse hargnevateks algoritmideks.

Näide - plokkskeem, mis sisestatud punktide põhjal väljastab hinde.


Ülesanne 2. Kirjuta plokkskeem, mis kontrolliks, kas sisestatud arv on positiivne või negatiivne ning väljastaks vastavalt teksti "positiivne arv" või "negatiivne arv".
Lisaülesanne: täiusta oma algoritmi nii, et juhul kui arv = 0, väljastaks programm vastava teate!

Ülesanne 3. Täiusta näiteks toodud hinde plokkskeemi nii, et see kontrolliks, et sisestatavad punktid jääksid vahemikku 0-100.

Ülesanne 4. Keerulisem ülesanne (selle eest on võimalik saada eraldi hinne Stuudiumisse):
Proovi välja mõelda ja kirja panna plokkskeem, mis:
1. Küsib kasutajalt maksimumpunktisumma, mis töö eest võib saada. 
2. Küsib kasutajalt töö eest saadud punktisumma. 
3. Arvutab välja protsendi
4. Väljastab protsendile vastava tähe (hinde).


esmaspäev, 2. mai 2016

Programmeerimise lõputöö

Täna alustame programmeerimise lõputöö tegemist. Lõputöös saate näidata, mida olete aasta jooksul programmeerimise valikaines õppinud.
Töö tegemiseks on meil kasutada lisaks tänasele loodetavasti veel 3 ainetundi - kui tekib probleeme, siis saate tunnis minu käest küsida.
Oluline on, et te mingi töötava programmi või animatsiooni (Scratch) valmis saate ning suudate ka selgitada, kuidas teie programm või animatsioon töötab.

Täpsema kirjelduse ja töölehe leiate siit:
https://docs.google.com/document/d/1tccplf_ZIlig7UDRIzEaH0WdhJyGXT7xpWi_uHW8OO4/edit?usp=sharing

Kasutada võite ka tunnis tehtud programme, aga neid tuleb siis kindlasti muuta ja täiustada, et oleks näha ka teie oma panus!

Lõputöö peab valmis olema hiljemalt 24. või 25. mail (sõltuvalt sinu rühma tunni toimumise ajast).

esmaspäev, 7. märts 2016

Ekraanile joonistamise äpi edasiarendus (pildistamine ja pildi salvestamine)

Täiustame eelmisel tunnil alustatud ekraanile joonistamise äppi.

NB! Kes eelmisel tunnil puudus, siis saate valmis äpi alla laadida siit (fail tuleb salvestada arvutisse ja siis AppInventori keskkonda üles laadida Fail -> Import).

Lisame äpile juurde võimaluse, et saame pildi, millele joonistada, oma nutiseadme kaameraga pildistada ning pärast koos joonistusega pildi salvestada.

1. Pildistamine nutiseadme kaamerat kasutades

  1. Lisa oma projekti disainivaates töölauale nupp, mille tekstiks on "Pildista" või "Foto". Muuda nupu nimi ära ka "Components" paneelis.
  2. Nüüd otsi Palette Media valikust komponent Camera ning lohista see töölauale. Camera on peidetud komponent ning ilmub töölauaks oleva telefonipildi alla.
  3. Edasi võta programmeerimise vaade Blocks
  4. Nüüd tuleb programmi täiendada nii, et nupul "Pildista" klõpsamisel avaks äpp kaamera ning lubaks meil pildi teha. 
  5. Edasi tuleb lisada plokk, et kaamerast saadud pilt võetakse joonistusvälja taustapildiks. Selleks saame kasutada plokke 
  6. Testi äppi! Selleks tuleb klõpsata üleval menüüribal sõnal "Build" ja edasi valida "Provide QR code for .apk" variant. Skänni nutiseadmega QR koodi ja installi see oma seadmesse.

2. Joonistusega pildi salvestamine oma seadmesse

  1. Lisa projekti disainivaates töölauale nupp "Salvesta". Muuda nupu nimi ära ka "Components" paneelis.
  2. Paiguta nupud nii, et neid oleks võimalik klõpsata (näiteks kasutades eelmisel tunnil õpitud HorizontalArrangement vahendit.
  3. Programmeerimise vaates Blocks tuleb lisada tegevus, mis järgneb nupu "Salvesta" klõpsamisele. Joonistamisala (Canvas) valikus on käsuplokk "SaveAs", aga seda ei saa otse nupuklikiga ühendada. Vahelüliks sobib plokk Built-in ja Control plokkide valikust "Evaluate but ignore result".
  4. Testi äppi! Pilt salvestub nutiseadme sisemällu.
Vaata allolevat programmi ja selgita, mis erinevus on sel võrreldes ülemise skriptijupiga!
Mis probleem tekib ülemise skripti puhul, kui oleks soov salvestada mitut pilti?


Lisaülesanne
Joone jämeduse määramine

Täienda oma äppi sellega, et oleks võimalus ka valida, kui laia joonega joonistada saad.

  1. Lisa äpi muutmiseks disainivaates liugur (slider, selle leiab User interface valiku alt). Lohista see joonistamisala alla või siis näiteks selle HorizontalArrangement vahendi sisse, kus on pildistamise ja salvestamise nupud.
  2. Lisa liuguri juurde ka tekst, et sellega saab joone laiust muuta (User interface -> Label ja Properties paneelis muuda selle tekst eestikeelseks).
  3. Properties paneelis. Pane liuguri väikseimaks väärtuseks (MinValue) 2 ja suuremaks väärtuseks (MaxValue) 20. Liuguri algasukohaks (ThumbPosition) või panna 10. Liuguri laiuseks (Width) pane näiteks 70 px.
  4. Blocks. Loo muutuja laius ja pane selle väärtuseks 2 (vajalikud plokid leiad Variables ja Math jaotuse alt).
  5. Nüüd leia liuguri plokkide alt selline, mis reageerib liuguri asendi muutusele (PositionChanged) ja lohista see töölauale. Selle ploki sisuks tuleb käsk võtta muutuja laius väärtuseks liuguri asend 
  6. Nüüd tuleb lisada ringi ja joone joonistamise plokki see, et joone laiuseks võetakse muutuja laius.
  7. Testi äppi!


esmaspäev, 8. veebruar 2016

Agar.io täiendamine (teine täpp)

Täiendame eelmisel tunnil alustatud agar.io mängu nii, et lisame sinna teise täpi, mis "sööb" samuti kloonitud täpikesi ja muutub suuremaks. Juhul kui teine "täpp" on suurem, kui meie mängutäpp, siis kokkupuutel "sööb" ta meie täpi ära ning ilmub teade, et mäng on läbi.

Kui meie mängutäpp "sööb ära" teise täpi, siis ilmub see teine täpp mõne aja pärast uuesti ja hakkab jälle teisi täppe sööma.

Mõned juhised.

Selleks, et teist täppi peale tema ära söömist uuesti tagasi tuua ning koodi lühemaks teha, on vaja kasutusele võtta alamprogrammid. Nende loomiseks tuleb klõpsata linki "Lisaplokid" ning valida sealt "Loo plokk". Nüüd tuleb anda uuele plokile nimi, mille järgi teda saab välja kutsuda.


Täiendatud mäng (lõppu on lisatud ka teade mängu lõppemise kohta).



esmaspäev, 25. jaanuar 2016

Testimine

Vahelduseks programmi kirjutamisele räägime veidi ka testimisest /refereeritud: http://www.cs.tlu.ee/~inga/Prog_materjalid/testimine_2007.pdf/

Testimiseks nimetatakse programmist vigade otsimist. Vigu võib otsida nii programmi koodist (Scratchis "Vaata seestpoolt") kui ka programmi erinevate sisendandmetega läbi mängides.

Millised omadused võiksid olla ühel programmil?
  • Funktsionaalsus (sobivus kasutaja vajaduste rahuldamiseks, toimimise õigsus, koostalitlusvõime teiste süsteemidega, turvalisus, funktsionaalsuse vastavus normidele)
  • Töökindlus (küpsus ehk tõrgete esinemise sagedus, tõrketaluvus väliskeskkonna vigade suhtes, taastuvus, töökindluse vastuavus normidele)
  • Kasutuskõlblikkus (Õpitavus, arusaadavus, käsitsetavus, meeldivus, kasutuskõlblikkuse vastavus normidele)
  • Tõhusus (ajaline käitumine, ressursikasutus, tõhususe vastavus normidele)
  • Hooldatavus (analüüsitavus vea leidmiseks, muudetavus, stabiilsus muudatuste suhtes, testitavus, hooldatavuse vastavus normidele )
  • Porditavus (sobitatavus teisele riist- või tarkvaraplatvormile, installeeritavus, koosoluvõime, vahetatavus, porditavuse vastavus normidele) 
/allikas: Maili Markvardt "Tarkvara testimist käsitlev juhendmaterjal"/

Testimise eesmärgiks peab olema võimalike vigade leidmine, mitte tõestamine, et vigu ei ole!

Staatiline testimine
Vaadatakse läbi programmi kood ilma programmi käivitamata.

Dünaamiline testimine
Vigu otsitakse töötavas programmis.

Edukas test on selline test, mis aitas leida vigu.

Hea test avastab võimalikult palju vigu.

Ülesanne
Testi üksi või paaristööna oma rühma Stuudiosse jagatud programme. Analüüsi 2-te programmi ja jaga saadud tulemust õpetajaga. Täpsemad juhised ja kontrollküsimused leiad töölehelt.
Tööleht