Sunteți pe pagina 1din 132

GHID

DE UTILIZARE
SCRATCH
PENTRU
COPII
6-14 ANI

Table of Contents
Type chapter title (level 1).................................................................................................................1
Type chapter title (level 2)..................................................................................................................2
1
Type chapter title (level 3)..............................................................................................................3
Type chapter title (level 1).................................................................................................................4
Type chapter title (level 2)..................................................................................................................5
Type chapter title (level 3)..............................................................................................................6

Acest ghid de programare Scratch este potrivit incepatorilor, cu varsta de + 10 ani,


care doresc sa faca primii pasi in programare. Invatam, prin implementare de
proiecte practice sub forma de joc, elemente si concepte de baza in programare,
aceleasi concepte cu care lucreaza orice programator din lume, într-un mediu de
programare dezvoltat special pentru copii si considerat de specialisti cel mai bun
din lume: Scratch Acest ghid își prpune prezentarea teoretica a notiunilor și
meniului și de asemenea, dezvoltarea unor proiecte, de la simplu la complex, pentru
a ne dezvolta logica de programare si gandirea algoritmica. Ne familiarizam cu
conceptele de variabila, conditie, bucla, gandire algoritmica. vom crea un joc! Ne
distram si invatam!
Animatia – constituie o iluzie optica a miscarii, creata prin derularea unor imagini
suprapuse intr-un interval de timp Miscarea- deplasarea unui personaj de la un
punct la altul, Bucla infinita – structura repetitiva, Variabila – marime de un anumit
tip de date care-si poate schimba valoarea de mai multe ori in timpul executiei unui
program, Condiții, Numere aleatorii, Coordonate de mișcare, Elemente de grafica si
editare imagini, Elemente matematice: for

2
Scratch este un limbaj de programare dezvoltat de MIT Media Lab în scopul predării programării
către adolescenți și alți programatori pentru prima dată. Scratch este un nou limbaj de programare,
lansat inițial în mai 2007. Scratch sprijină dezvoltarea de jocuri pe computer, povești interactive,
lucrări grafice și animație pe computer, precum și tot felul de alte proiecte multimedia. Scratch
permite noilor programatori să creeze programe prin aglomerarea blocurilor. Scratch constă dintr-un
limbaj de programare format din diferite blocuri și un mediu de dezvoltare grafic ușor de învățat care
include o aplicație de vopsea pentru a crea grafică și capabilități de editare a sunetului încorporate.
Vine și zgârietura cu colecții uriașe de aplicații eșantion, precum și fișiere grafice și sonore, toate
dintre care le puteți utiliza pentru a vă crea propriile proiecte Scratch.
Să definim termenul Scratching ca pe o metodă de a îmbina sunete diferite pentru a rezulta o altă
muzică. Limbajul de programare Scratch amestecă imagini, sunete, scripturi din care reiese un nou
program de computer. Acestuia i se pot adăuga actori (eng. sprites) adică niște obiecte (oameni,
vehicule, animale) care pot fi mișcate, animate si pot interacționa cu ajutorul scripturilor.
Programele Scratch sunt alcătuite din elemente grafice blocuri, care sunt fixate împreună. Blocurile
de zgârieturi seamănă cu piesele de puzzle din fel în care se prind împreună. Blocurile de zgârieturi
pot fi combinate numai în moduri care au sens, împiedicând noii programatori să le folosească în
invalid combinații. În acest fel, Scratch impune o sintaxă de programare adecvată și asigură că noii
programatori învață modul corect de asamblare și formulare logica de programare.
În Scratch, noii programatori pot crea noi proiecte de aplicații care încorporează blocuri de coduri
preconstruite, grafică și fișiere de sunet în tot felul de combinații noi. Scratch permite
programatorilor să modifice aplicațiile din mers, permițând modificări uniforme în timp ce aplicațiile
Scratch rulează. Rezultatul este un interactiv, în timp real mediu de programare care încurajează
experimentarea și învățarea.
Scopul principal al acestei cărți este de a vă învăța tot ce trebuie să știți pentru a învăța elementele
de bază ale programării computerului cu Scratch.
Scratch oferă tot ce este necesar pentru a începe dezvoltarea de jocuri pe computer, prezentări
multimedia, povești interactive, lucrări grafice și animație pe computer. Scratch poate fi folosit
pentru a reda muzică digitală și efecte sonore. Scratch’s abordarea de bază a programării o
diferențiază de alte limbaje de programare.
Scratch este un limbaj de programare vizual care este alcătuit dintr-o interfață grafică care acceptă
dezvoltarea de aplicații în care se află noi proiecte creat prin amestecarea de imagini, sunet și video
sub controlul scripturi, care specifică logica de programare a aplicației. Scripturile sunt create prin
blocarea blocurilor, la fel ca blocurile Lego încheiate împreună pentru a crea tot felul de creații unice.
Fiecare bloc reprezintă o altă comandă sau acțiune care spune aplicației cum să execute.
Scratch oferă, de asemenea, programatorilor acces la tot felul de medii, inclusiv grafică și sunete,
precum și instrumente care pot fi utilizate pentru a crea grafică nouă și fișiere sonore. Scratch este un
limbaj de programare interpretat. Aceasta înseamnă că aplicația respectivă proiectele nu sunt
precompilate (transformate în cod executabil care poate fi rulat ca un fișier aplicație autonomă)
înainte de executarea acestora. În schimb, codul blochează acest lucru proiectele aplicației Scratch
sunt interpretate și procesate de fiecare dată când proiectul aplicației este executat. Scratch este, de
asemenea, un limbaj de programare dinamic.
Permite modificarea proiectelor de aplicații chiar și în timp ce proiectele sunt executate. Ca atare,
Scratch permite programatorilor să experimenteze realizând aplicații modificări din mers pentru a
vedea ce tip de efect pot avea modificările asupra executarea aplicației.
Sloganul Scratch este Imagineaza-Programeaza-Partajează
Proiectez-conceperea proiectelor Scratch prin scrierea unor scenarii cu ajutorul personajelor și
decorurilor. Programez-scriem scripturile pentru personaje și decoruri. Partajez apoi proiectul pe
site-ul Scratch.
Pentru dezvoltarea proiectelor folosim media, grafică, sunet, video mișcarea personajelor,
adăugarea sunetelor, schimbarea culorilor, controlarea acțiunilor cu mouse-ul și
tastatura și
crearea propriilor obiecte numite personaje.

3
Scratch oferă noilor programatori tot ce este necesar pentru a crea și executa noi proiecte de
aplicații. Scratch promovează înțelegerea conceptelor de programare, inclusiv logica condițională și
iterativă, programarea evenimentelor, utilizarea variabilelor, matematica și utilizarea graficii,
și efecte sonore generarea la dezvoltarea programului, apoi testarea și depanarea și încorporarea
feedback-ului utilizatorilor.
Mediul de programare Scratch Editorul Scratch 2.0 online sau offline
Pentru a porni varianta online a Scratch ce ruleaza in browser, accesați site-ul Web Scratch
(http://scratch.mit.edu/) și faceți click pe butonul creează. Acest lucru ar trebui să vă ducă la
interfața editorului de proiect Scratch. Pentru salvarea programului in cloud rebuie sa avem un cont
Scratch.

In interfața Scratch2.0 principalele elemente Avem trei panouri: Scena (stânga sus), Lista Sprite
(stânga jos) și fila Scripturi (dreapta), care conține fila Blocuri și zona Scripturi. Panoul din dreapta
conține, de asemenea, două file suplimentare, Costume și Sunete. Dacă sunteți conectat la un cont
pe site-ul Scratch, Rucsacul (în dreapta jos), care are butoane care permit partajarea proiectului și
utilizare scripturi din proiecte existente.
Scena este locul în care spritele se mișcă, desenează și interacționează. Scena este 480 pași lățime și
360 pași înălțime. Centrul a Etapei are o coordonată x de 0 și o coordonată y de 0.
Proiectele de aplicații Scratch sunt alcătuite din obiecte numite sprite. Un sprite este un imagine
bidimensională bitmap desenată pe un fundal transparent. Spritii pot să fie mișcați și să facă să
interacționeze unii cu alții. Spriturile sunt formate din trei componente principale, așa cum sunt
prezentate aici:
 Scripturi. Colecții de blocuri de cod care conturează logica de programare care controlează
funcționarea sprite-urilor fiind slectate și unite formând scripturi adică seturi de instrucțiuni.
 Costume. Imagini care sunt utilizate pentru a afișa sprite-ul pe o zonă a Scratch IDE,
denumită scenă. Spriturile pot consta din orice număr de costume. Sprites sunt imaginile de
pe ecranul unui program de computer Scratch. Fiecare program Scratch este format din
sprite și scripturi (instrucțiuni) care le controlează. Sprite-ul poate fi programat pentru a vorbi
în bule de vorbire și pentru a reda sunete și muzică. Un proiect poate avea o mulțime de
sprite și fiecare sprite poate avea o mulțime de scripturi. Putem sa modificam cum arată un
personaj folosind costumele deci un personaj poate fi o persoană, un tren, un fluture, iar
dupa aceea putem sa-i dam instructiuni personajului pentru a se deplasa, cânta, vorbi sau să
interacționeze cu alte personaje îmbinând blocuri grafice numite stive-scripturi. Sunt rulate
blocurile din script de sus în jos.
 Sunete. Efecte sonore care sunt redate în timpul execuției aplicației atunci când apar
anumite evenimente sau ca sunet de fundal.
Aspectul unui sprite poate fi schimbat atribuindu-i costume diferite. A muta un sprite și controlați
comportamentul acestuia, combinați blocuri de cod pentru a crea scripturi. Sprites poate avea orice
număr de scripturi asociate cu acestea. Scripturile pot fi rulate făcând dublu clic pe blocurile de cod
4
care le compun, caz în care fiecare bloc în script se execută în ordine de sus în jos. De asemenea,
puteți configura lucrurile astfel încât scripturile rulează automat atunci când apar diferite
evenimente.
Programarea unui personaj înseamnă să tragem blocuri din paleta de blocuri în zona de scripturi.
Exemple de blocuri grupate în categorii: mișcare, aspect, sunet, date și operatori, creion,
evenimente, detectie, control. Asadar fiecare program Scratch conține actorii (imaginile de pe scenă)
și scripturile aferente, care îi controlează și prin care interacționează cu ceilalți actori. Un proiect
Scratch poate fi alcătuit din mai multi actori. Fiecărui actor i se pot atribui mai multe scripturi.
Folosind butoanele din paleta de blocuri putem observa că sunt în numar de zece și că sunt codificate
pe culori în funcție de ceea ce fac. Pentru rularea unui script apăsăm butonul cu steag verde de pe
scenă.

Proiect: crearea unui program Scratch - Fugi de dragon - utilizând blocuri de cod în scripturi
Obiective:
 adăugarea unor fundaluri cât și actori
 mișcarea actorilor
 crearea unui cronometru joc
 utilizarea unor costume pentru dragon
 adaugare muzica ce ruleaza pe tot parcursul programului

5
6
Repetiții (bucle): block-ul repeat și block-ul forever

Ce este o variabilă? O variabilă este o zonă denumită a memoriei computerului. Vă puteți gândi la
aceasta ca la o casetă care stochează date, inclusiv numere și text, pentru ca un program să poată fi
accesat ca necesar. O variabilă este ca o cutie anumită care conțține o valoare. Când creați o
variabilă, programul pune deoparte suficientă memorie pentru a păstra valoarea variabilă și
etichetează memoria alocată cu aceasta numele variabilei. După crearea unei variabile, putem să-i
folosim numele în program pentru a ne referi la valoarea pe care o reprezintă. Dacă avem o variabilă
numită latura ce conține numărul 50 putem construi o comandă move(3*latură)steps.
Când Scratch execută această comandă, aceasta va fi localizată caseta numită partea din memoria
computerului, apucați conținutul acesteia (în acest caz, numărul 50) și utilizați acea valoare pentru a
înlocui eticheta laterală din interiorul mișcării (3 * lateral) bloc de trepte. Ca urmare, sprite-ul se va
deplasa 150 (adică 3 × 50) pași. În jocul nostru Whac-a-Mole, avem nevoie de o modalitate de a ne
aminti de jucător Scor. Pentru a face acest lucru, putem rezerva spațiu în memoria computerului
(ca o cutie) pentru a stoca scorul. De asemenea, trebuie să oferim acelei cutii o etichetă unică, să
spunem scor, care ne va permite să îl găsim ori de câte ori trebuie să știm sau să ne schimbăm ce e
inauntru. Când începe jocul, îi vom spune lui Scratch să „stabilească scorul la 0” și Scratch va căuta
scorul marcat cu casetă și va pune valoarea 0 în interiorul său. Bine, de asemenea spuneți lui Scratch
să „mărească scorul cu 1” de fiecare dată când jucătorul face clic pe sprite. Ca răspuns la primul clic,
Scratch va privi din nou în caseta de scor, găsiți-ne 0, adăugați 1 la acesta și puneți rezultatul (care
este 1) înapoi în casetă. Data viitoare când jucătorul face clic pe sprite, Scratch ne va urma din nou
Comanda „crește scorul cu 1” pentru a crește scorul și a stoca rezultatul valoarea 2 în casetă.
Observăm că valoarea scorului se schimbă pe tot parcursul programului. Acesta este motivul pentru
care o numim o variabilă - valoarea ei variază. O utilizare importantă a variabilelor este stocarea
rezultatelor intermediare ale evaluarea unei expresii algebrice. Acest lucru este similar cu modul în
care faci mental matematica. De exemplu, dacă vi s-ar cere să găsiți 2 + 4 + 5 + 7, ați putea începe
prin adăugarea 2 + 4 și memorarea răspunsului (6). Apoi ați adăuga 5 la răspunsul anterior (care este
stocat în memoria dvs.) și memorați noul răspuns, care este 11. În cele din urmă, ați adăuga 7 la
rezultatul anterior pentru a obține răspuns final de 18. Pentru a ilustra modul în care variabilele pot fi
utilizate pentru stocarea temporară, să presupunem că doriți să scrieți un program pentru a calcula
următoarea expresie:
a scrie programul înseamnă a evalua numeratorul și numitor individual și apoi utilizați blocul say
pentru a afișa rezultatul împărțirii lor. Putem face acest lucru prin crearea a două variabile numite
num (pentru numărător) și den (pentru numitor) și setarea valorilor lor

7
8
Sa ghicim numarul corect – unim blocurile creand scripturi eficiente. Scriptul cere utilizatorului sa
introduca un numar intre 1 si 10. Numarul care trebuie ghicit este 2. Scriptul afiseaza text diferit in
functie de numarul pe care utilizatorul l-a ghicit mai mare decat 5 sau mai mic decat 5.

Cate litere sunt in cuvant?

9
Apasam pe steagul verde, urmatorul block afiseaza un balon de discutie – introduceti un cuvant,
deschide un camp de input si asteapta de la utilizator introducerea unui cuvant. Urmatorul bloc
opreste scriptul pentru o secunda. A poi sunt incorporate cateva blocuri join intre ele creand un
balon de discutie -lungimea cuvantului, input de la utilizator, lungimea literelor pentru 4 secunde.
Includerea blockului answer in block-ul length of calculeaza valoarea lungimii.
Numere random! – intre 1 si 100 afiseaza ce numar a fost ales in mod aleatoriu intre 1 si 100.

10
Apasam pe steagul verde. Este creat un balon de discutie apoi utilizat block-ul pick random 1 to 100 si
afiseaza fraza numarul ales este concatenate cu numarulk pentru 2 secunde.
Declansatorul timp – porneste timpul 0.0 secunde. Cand timerul ajunge la 25 de secunde, scriptul
afiseaza un text.

Reset timer block la 0.0 secunde. Cu urmatorul block miscam imaginea catre mijlocul scenei (0.0) ste
evaluat apoi daca block-ulk timer este egal cu 5. Cand conditia este adevarta urmatoare actiune este
executata-un balon de discutie este afisat cu mesajul petrecere!!.
Sa ne miscam catre centrul scenei

11
Intrebari- Scriptul cere utilizatorului sa raspunda unei intrebari cu una sau doua fraze specifice si apoi
sa faca actiuni diferite in functie de raspunsuri. Vom sti daca utilizatorul este om sau extraterestru
tehnica de baza este folosita pentru multe alte tipuri de intrebari.

12
Sa rezolvam problema : X+4/2=10

13
14
Sa desenam cu mouse-pointer

15
Sa numaram pana la 10!

16
17
Numaratoare inversa
Cream variabila number pentru acest script.

18
pentru a putea citi scriptul, bloc cu bloc - modul în care programatorii citesc programele linie cu linie
atunci când depanează un program. Avem nevoie de variabila numeric number pentru acest script.
următorul bloc creează un balon care afișează Numărătoarea inversă începe acum timp de 2 secunde.
Următorul bloc atribuie valoarea 10 numărului variabil. Urmatorul bloc creează un balon care afișează
valoarea curentă a numărului timp de 1 secundă.Apoi, blocul repeat repetă secvența de acțiuni din
cadrul acestuia de 10 ori. În primul rând, schimbă valoarea curentă a variabilei numerice cu –1. Apoi,
creează un balon care afișează valoarea curentă a numărului variabilă timp de 1 secundă. Și apoi bucla
se repetă. Ultimul bloc din acest script creează un balon care afișează inapoi de la 10. Făcând clic pe
steagul verde se activează scriptul. Verdele semnalizatorul este declanșatorul pentru a porni
executarea scriptului. Sprite primește un balon care afișează numărătoarea inversă începe acum timp
de 2 secunde. Setam valoarea curentă a variabilei numerice la 10. Sprite primește un balon care
afișează text sau valoare specificată pentru 1 secundă. Retinem valoarea curentă a variabilei numerice.
Repetam acțiunile din blocurile din acest bloc de 10 ori. Scădem 1 din valoarea curentă a variabilei
numerice. Sprite primește un balon care afișează text sau valoare specificată pentru 1 secundă.
Retinem valoarea curentă a numărului variabil. Sprite primește un balon care afișează inapoi de la 10.
Numere impare –scriptul asigneaza valoarea 1 variabilei number si afiseaza valoarea. De fiecare data
cand bucla se repeta adauga 2 la valoarea curenta a variabilei si afiseaza noua valoare 1,3,5,7,9

19
Setați valoarea curentă a numărului variabilă la 1. Sprite-ul primește o bulă de vorbire care afișează
textul sau valoarea specificată pentru 2 secunde. Țineți și raportați valoarea curentă a număr variabil.
Repetați acțiunile reprezentate de blocuri în acest bloc de patru ori. Adăugați 2 la valoarea curentă a
numărului
variabil. Sprite-ul primește o bulă de vorbire care afișează textul sau valoarea specificată pentru 2
secunde.
Matematica fibonacci sequence generator
Sirul lui Fibonacci - Numele acestui șir a fost dat în onoarea matematicianului
italian Leonardo Pisano Bogollo (1170–1250),
cunoscut și sub numele de Fibonacci. Acesta a descoperit surprinzătorul șir de
valori plecând de la următoarea întrebare: Câte perechi de iepuri se vor obține,
într-un an, dintr-o pereche de iepuri, dacă se știe că în fiecare lună perechea dă
naștere unei noi perechi de iepuri și fiecare pereche va da naștere unei noi
perechi, începând cu următoarea lună?

20
pentru n=6 si x=2 avem urmatorul sir de numere 2,4,8,16,32,64

pentru n=5 si x=3 avem afisate valori nenule

21
verifica numar par sau impar

22
divizibiitatea

23
24
sa vedem numarul de numere pare si impare introduse

25
26
fulg de nea

verificarea unui numar daca este patrat perfect

numarl este prim ?

27
este palindrom ?

28
29
primele numere prime

scorul Scratchy

30
31
cursa de soareci

32
33
34
Urmareste cascavalul- maze game -trebuie sa fugim prin
labirint ca sa evitam ghost. soarecele este falmand si este
blocat in labirint asadar trbuie sa-l ajutam sa gaseasca
branzadar sa nu se intalneasca cu ghost care poate trece
prin pereti.

de fiecare dat cand dam click pe bucla forever aceasta se


repeta la nesfarsit
key up arrow pressed selectam tasta up arrow, sagata in sus
blocul din interiorul if-then ruleaza doar cand raspunsul la
intrebare este da. iar blocul face ca soarecele sa se miste.
Fiecare if-then block ar trebui sa se afle in interiorul buclei
forever, dar nu om interiorul niciunui alt block if-then.Pentru
a utiliza un sprite branza trebuie ca noi sa-l desenam
deoarece Scratch nu-l are in biblioteca.

pick random -160 to 160 acest block misca Sprite-ul branza


in louri alese in mod aleator in jurul scenei. Sccriptul face o
pauza aici pana ce soarecele ajunge touching Mouse.

35
fantoma - pluteste si trece prin pereti cu hide fantoma se
ascunde blocul set rotation style opreste fantoma sa se
roteasca in sus si in jos. in bucla forever avem miscarea
fantomei move 1 steps, si blockul if-then thouching mouse
acesta sfarseste jocul cand fantoma atinge soarecele. De
asemenea, in celalalt forever blocul tine fantoma ascunsa
pentru 5-10 secunde urmatorul block face ca fantoma sa
reapara intr-un loc aleatoriu pe scena.
show wait pick random 3to 6 acest block tine fantoma pe
ecran pentru 3 -4 secunde.cursa de soareci am creat un
laborint prin care soarecele alearga

am inserat blocuri noi - care sa-l face pe soarece sa se miste


5 pasi inapoi.atingerea peretelui declanseaza miscarea
inapoi cu 5 pasi.

Razboi cu baloane - miscam crcul bleu pe scena miscand


mouse-ul

36
am creat variabila score si am bifat caseta care asigura ca
acesta o sa apara pe scena am adaugat Sprite1 si codul cu
blocul forever lipeste de mouse-pointer

am adugat scriptul care-l face sa se roteasca in jurul scenei


cu o schimbare aleatorie de directie la fiecare 250 de pasi.
bucla repeat rukeaza blocul din interior de 25 de ori. o
directie la intamplare schimba la fiecare 250 de pasi, dar nu
ramane blocata in pereti.

37
doar de la 2 sprite-uri cel verde si cel rosu cream o armata
de proetenei si dusmani pentru a mari numarul de jucatori
cercuri bleu si sa se miste aleatoriu pe scena. Selectam
sprite bleu si adaugam script sa se roteasca in cerc in jurul
scenei schimband directia in mod aleator la fiecare 250 de
pasi. f Trebuie sa realizam o armata de clone sprite bleu
adaugam create clone of myself block la sfarsitul blockului
forever din sectiunea Control care va crea o clona la fiecare
250 de pasi.

when I start as a clone toate clonele ruleaza o copie a


acestui scriptset ghost effect to50 acest bloc face toate
clonele transparente. repeat 30- instructiunile din acest
block se repeta de 300 de ori. move 1 step clona se misca
usor printre sprite1 sarind o saritura. delete this clone
aceasta clona dispare dupa 300 de pasi.
clonele dusmane ultima parte a scriptului pentru clona
verde verifica daca atinge sprite albastr. daca da, clona este
sterasa. blocul if-then este in interiorul buclei repeat scorul

38
ar trebui sa crasca pe masura ce scorul ar trebui sa creasca
ce atingem cercurile verzi ce dispar si fac pop.
delete this clone acest block scapa de clone, toate clonele
dispar de pe scena cand un proiect se opreste paraind doar
sprite-ul original.

39
40
if-then block pentru a spune castig sau pierdere joc
puncte care verifica scorul daca este mai mare de 20 ai
castigat altfel nuset score to0 blocul seteaza scorul la 0
if score>20 putem sa gasim acest block in sectiunea
operatori -f-then gasim blocul think victory si stop this script
aceste blocuri ruleaza cand scorul este mai mic de 20sprite1
opreste urmarirea mose-pointerului cand fie scorul de
pierdere sau castig este atins.
Adaugarea nui timp - in sectiunea Data facem o variabila
Time pentru toate Sprite-urile numarul total de secunde din
joc set Time to timer acest block actualizaeaza timpul afisat
de fiecare data cand bucla se repeat. prin copierea timer in
variabila Time de fiecare data cand ajunge in bucla va afisa
timpul pe scena. dar in momentul in care sprite1 castiga sau
pierde timpul se opreste -scriptul se opreste- si timpul total
luat sa castige sau sa piarda este afisat.

41
de asemenea se poate adauga wait until key space is
pressed imediat dupa steagul verde adaugam un Sprite nou
care va tine actiunile pana ce bara sptiu va fi apasata.
Maimuta saritoare -maimuta este intr-o misiune sa adune
banane. Alege in ce directie cat de repede sa mearga.
sageata- pointeaza in directia pe care o dorim utilizand
tastele stanga dreapta sageti.

42
43
44
pentru a lansa maimute cand apsam tasta spatiu adaugam
acest nou script sprite-ului maimuta repeat until este un tip
de block bucla care continua sa rpete blocurle din interior
pana ce conditia devine adevarat maimuta continua sa se
miste pana ce atinge marginea scenei.
repeat until daca vream ca ceva sa se repete o actiune pana
ce un lucru se intampla si atunci se misca pana la sfarsitul
scriptului
DOOM ON THE BROOM
vrajitoarea se plimba pe matura cand creaturile noptii
avanseaza asupra ei din toate partile. Ea trebuie sa arunce
vraja ei de foc pentru a arunca liliecii, fantome, demoni,
dragoni. vrajitoarea sta in centrul scenei pe matura cu
tastele sageti si arunca mingi de foc cu bara de spatiu.

45
adaugam scriptul liliacului pentru a-l face sa pluteasca
inainte si inapoi pentru a vedea ca bate din aripi. cum
controlam vrajitoarea? adaugam mai multe scripturi
jucatorul preia controlul vrajitoarei. La Data make a variable
GameSpeed, Score, Lives

46
set gamespeed to 1 aceste blocuri fixeaza pace jocului la
1blocul forever bucla de contrl care vesrifica continuu cu
tastele sageti rotirea vrajitoarei. turn gamespeed *2 degrees
aceasta controleaza cat de repede vrajitoarea se roteste.
apoi vom mari pe masura ce scorul creste.

create clone of myself creaza clone asi decalnseaza scriptul


de mai sus
wait until not key space pressed fara acest block jucatorii ar
putea tine bara de saptiu tasta space pentru un stream
constant de mingi de foc. Atacul liliecilor zburatori care nu
poate speria o vrajitoare dar ii putem clona sa para mai
multi. Blocul hide face sa se ascunda sprite original astfel
incat sa vedem doar clone.si sunt create la fiecare 5-10
secunde.
point in direction pick random -180 to 180 trimite blocuri ale
liliecilor catre marginea scenei.
repeat until touching witch -aceasta miscare a liliacului prin
centru scenei pana atinge marginea.if touching fireball then

47
blocul distruge liliecii cand sent atinsi de mingea de foc si
miscarea se repeat.broadcast lease a life

playsound scream female -incarca scream female din


biblioteca
show face ca vrajitoarea sa reapara dupa o pauza daca ea
are vieti ramase
broadcast GameOverandwait- measjulGameOver
declanseaza un semnalpecare-lvomcream.

repeat 72 -create clone myself, turn 5 degree -scriptul


creeaza 72 de mici clone mingii albastre ascunse,iar al doilea
script le face sa zboarein cerc. clonele Explosion se misca in
afara la marginea scenei. cand sprite-ul Explosion primeste
mesajul pierde o viata toate baloanele bleu apar in locul
vrajitoarei si explodeaza lamarginea scenei.
pentru a evita sa rescriem sciptul de la Bat1 damclick
dreapta pe acesta si alegem duplicate pe care-l redenumim
FastBat.
when clicked set rotationstyleleft-right,hide, wait20secs -
fastbat apar mai tarziu in joc si mai rar. dupa atacul liliecilor
negri multi altii mai periculosi vor aparea batand din aripi.
Dragonul care arunca foc -copiem Bat1 si-l redenumim
Dragon,adaugam cele 2 costume.
48
modificam miscarea dragonului sa-l facem sa zboare in
spirala cu ajutorul point oowards witch inclus in blockul
repeat until bucla si adaugam turn right 80 degrees block.
Asteptam 10secunde un delay pentru sosirea dragonului pe
scena. Apoi schimbam numerele picknumber block to 10 si
15 acesta va face toate schimbarile.

adaugam un alt sprite ghost cu scopul de a urmari fantoma.


pentru a crea fantoma copiem inca o data sprite Bat1 click
dreapta duplicate.

adaugam acum un alt inamic animat Ghoul prin copierea


spriteului Dragon. Click costumes tabsi incarcam 2alte
costume.

49
Adaugam un GAME Over screen care apare cand vrajitoarea
ruleaza fara vieti.De asemenea, o putem programa sa dea
instructiuni jucatorilor lainceputul jocului.
cream un nou sprite symbol folosind bitmap mode desenam
un dreptunghi pe care-lumplem cu culoare. schimbam in
vector mode si adaugam un text Game over centrat.

Dog s dinner - un joc de tip platform, jucatorii sar de pe


plaforma colecteza prajituri si evita inamici si cursele.
trebuie sasincronizam timpulsariturii noastre perfect astfel
incat sa ramanem iin joc. Catelului ii plac oasele dar uraste
junk food. Trebuie sa treaca prin nivelul I, nivelul II,nivelul
IIIsarind din platforma in platform, colectam oasele de pe
scena si apoi trecem laurmatorul nivel.. Trebuie sa evite
prajiturile nesanatoase,gogoosile.
dogs dinner

50
adaugamun script sprite-ului realizat cand apasam sagetile
avem nevoie de un script care ruleaza prin obstacole facand
inapoi make a block -nu sunt block-uri in sectiune acum
dam click new block type run controls apoi apasam ok.

subprogram putem grupa sub define header block si rulam


folosind un nou block pe care-l denumim. ca sa nu
maiconstruim din nou acelasi grup de blocuri sis a le folosim
in mai multe locuri. limbajeledeprogramare nepermitsaluam
cod util si sa-l impachetam ca o unitate block, subprogram,
subroutine, proceduri,

51
if key right arrow pressed cand apasam sageata la stanga
playerblock se misca lastanga
daca playerblock atinge platform miscarea este inversata.
if the key left arrow pressed -daca apasam sageata ladreapta
playerblock se misca ladreapta.
in sectiunea Data cream ovariabila pentru toate sprite-urile
numita RunSpeed
vedem ca putem misca playerback stanga dreapta

sus si jos -pe platforma trebuie sa sarim sus si jos fara


gravitatie asa ca trebuie sa adaugamgravitatie simulata
jocului. Adaugam variabilele Gravity si FallSpeed apoi dam
click pemoreblocks si adaugam un new block numit simulate
gravity. el miscaplayerblock in jos de valoareaFallSpeed si
verifica sa vada daca Playerblock a atins platform.

52
acum daca rulam proiectul cu ajutorul tastei spatiu
playerblock sare in sus si vine inapoi
acum sare la infinit in sus si iltine sa cada usor. sacontrolam
saritura si gravitatie.

cand playerblock atinge platforma bucla repeat until


inverseaza blockul playerblock pana ce sta un pas deasupra
platformei. if falspeed<0 if-the-else conditie testate
falspeedeste negative atunci reverseStep este setata la
1,daca fallspeed creste,atunci reverseStep estesetatla-1.

53
realizam un block fallen off pecare-l adaugam blockului
forever
blockul define fallen off - comunica mesajul cand sprite-ul
este mai putin de 20 de pasi de capatul sxcenei.

54
blockul stop previne jucatorul sa se mistemaideparte.

scriptul lipeste cainele de partea din fata a blockului red


playerblock astfel incat el se misca cu acesta pe scena.
cainele se schimba permanent intre cele 2 costume cand
apasam sageata la stanga sau la dreapta ceea ce il face sa
para ca merge.

55
56
Matematică
Scratch oferă suport robust pentru efectuarea calculelor matematice. Acest
vă oferă posibilitatea de a dezvolta aplicații care pot manipula date numerice în
o varietate de moduri. Scratch oferă acest suport prin blocuri de coduri numerice.
Blocurile de coduri numerice sunt blocuri reporter și, prin urmare, pot fi utilizate numai în
coroborat cu blocuri de coduri de stivă. Acest capitol va oferi o analiză detaliată
din fiecare dintre aceste blocuri de cod și vă va arăta, de asemenea, cum să creați un nou Scratch
aplicație, jocul Ghicirea numărului.
Adunare, scădere, multiplicare și divizare
La fel ca toate limbajele de programare moderne, Scratch oferă programatorilor
capacitatea de a adăuga, scădea, înmulți și împărți date numerice.
Utilizarea acestor blocuri de cod este destul de intuitivă, fiecare bloc de cod fiind clar
identificarea utilizării acestuia. Aceste blocuri de coduri pot fi încorporate în orice Scratch
bloc de cod care acceptă introducerea numerică. De exemplu, următorul script
demonstrează cum se utilizează aceste blocuri de cod pentru a modifica valoarea atribuită unui
variabilă numită Count.

scriptul începe prin atribuirea unei valori inițiale de 10 la Count. Apoi, patru seturi
de blocuri de cod sunt executate. Fiecare set constă dintr-un bloc de stive și doi reporteri
blocuri. Primul set de instrucțiuni stabilește valoarea lui Count egală cu valoarea
în prezent atribuit la Count plus 5, făcând Count egal cu 15. Al doilea set de
seturi de blocuri de cod Număr egal cu valoarea atribuită în prezent numărării minus 5,
făcând Count egal cu 10. Al treilea set de blocuri de coduri setează Count egal cu
valoarea curentă a numărului de 5 ori, făcând numărarea egală cu 50. În cele din urmă, ultimul set de
blocurile de cod modifică valoarea Count la 10 împărțind valoarea sa curentă la 5.
Așa cum este cazul tuturor limbajelor de programare, Scratch vă permite să înșirați
împreună diferite combinații de blocuri de coduri numerice pentru a crea mai multe
calcule numerice complicate.
a fost creat un mic script care evaluează o expresie numerică și
atribuie rezultatul unei variabile numite Total. Această ecuație a fost creată prin încorporarea unei
serii de blocuri de coduri numerice unul în celălalt.
La fel ca toate limbajele de programare, Scratch evaluează componentele expresiilor matematice
urmând o ordine specifică, denumită ordinea de prioritate.
Mai exact, Scratch evaluează o expresie utilizând o abordare de sus în jos. Cand
aplicat exemplului prezentat în figurile 8.2, Scratch îl evaluează după cum urmează:
1. În primul rând, calculează valoarea celor două blocuri de cod de sus. Prin urmare, 4 este
înmulțit cu 5, rezultând o valoare de 20, iar 2 se scade din 4, rezultând
o valoare de 2. În această etapă, expresia a fost evaluată așa cum se arată
Aici.
57
20 þ 2/2
2. Apoi, expresia situată în codul de nivel al doilea bock (adăugarea
bloc) este evaluat. Prin urmare, 20 se adaugă la 2, rezultând o valoare de 22. La aceasta
etapă, expresia a fost evaluată așa cum se arată aici.
22/2
3. În cele din urmă, este evaluat blocul de cod de nivel inferior, împărțind 22 la 2 și rezultând o
valoare finală de 11.
Număr aleatoriu
Unele aplicații, cum ar fi jocurile pe computer, necesită un element aleatoriu
sau întâmplare. De exemplu, un joc care trebuie să simuleze aruncarea zarurilor trebuie
să poată crea o pereche de numere aleatorii în intervalul de la 1 la 6. Scratch oferă
capacitatea prin blocul de cod
În mod implicit, acest bloc de cod este configurat pentru a genera un număr cuprins între 1 și 10.
Acest bloc de cod oferă un mijloc de a genera numere întregi aleatorii (întregi)
folosind orice interval specificat de numere. Intervalul implicit este de la 1 la 10, dar este posibil
modificați câmpurile de introducere pentru a se potrivi nevoilor dvs. Dacă este necesar, puteți genera
negative
numere. În plus față de codificarea dură a unui interval numeric în control, puteți
înlocuiți blocurile variabile glisându-le în unul sau ambele
câmpurile de intrare ale acestui bloc de coduri.
Pentru a înțelege cum funcționează acest bloc de cod, consultați următoarele
exemplu:

Aici a fost creat un script care începe prin atribuirea unei variabile numite Count a
valoarea inițială de 0. Apoi, valoarea variabilei este modificată atribuindu-i o valoare selectată
aleatoriu în intervalul de la 1 la 5. O buclă este apoi configurată pentru a repeta
executarea a două blocuri de cod încorporate. Bucla este concepută pentru a repeta un număr
specificat de ori și este configurată implicit pentru a se executa de 10 ori. Cu toate acestea, de
tragerea și plasarea unei instanțe a blocului variabilă Count în buclă
câmpul de intrare, de câte ori se execută bucla este determinat aleatoriu,
în funcție de valoarea alocată aleatoriu a numărului.
Operațiuni de comparație
Pentru a lucra cu cifre, trebuie adesea să manipulați matematic
după cum s-a demonstrat în secțiunea anterioară. A face acest lucru vă va părăsi în cele din urmă
cu un rezultat.
Primul și ultimul bloc de cod afișat în Figura 8.4 vă permit să comparați o valoare
împotriva unei game de valori. Primul bloc de coduri verifică dacă valoarea numerică
specificată în primul său câmp de intrare este mai mică decât valoarea specificată în a doua sa intrare
camp. Al treilea bloc de cod face contrariul, verificând dacă valoarea numerică
58
specificat în primul său câmp de intrare este mai mare decât valoarea specificată în al doilea său
câmp
câmp de intrare. Blocul de cod mediu este utilizat pentru a determina dacă două valori sunt egale.
Pentru a dezvolta o mai bună înțelegere a modului de lucru cu fiecare dintre aceste trei coduri
blocuri, să vedem câteva exemple. În primul exemplu, prezentat mai jos, un script are
a fost creat care se execută de fiecare dată când se face clic pe butonul steag verde. Când aceasta
se întâmplă, valoarea Count este setată egală cu 10. Apoi, este încorporat un bloc de numere
în cadrul unui bloc de control pentru a configura un test condițional care evaluează valoarea
atribuit numărării și executării blocului de cod încorporat în control
bloc în cazul în care condiția testată (Numărul este egal cu 10) este adevărată. Din moment ce
aceasta este
cazul, un șir text de Hello! este afișat într-un balon.

blocul de coduri numerice care testează condiții mai mari decât


este folosit. Din nou, un script a fost configurat pentru a se executa ori de câte ori este butonul verde
a făcut clic. Valoarea atribuită numărării este apoi setată la 1 și se utilizează un bloc de control
pentru a configura o buclă care rulează pentru totdeauna (până când oferiți un mijloc de oprire a
acesteia
execuţie). Un număr de blocuri de cod sunt încorporate în buclă. Primul bloc
redă un fișier audio, iar al doilea bloc întrerupe executarea scriptului pentru o secundă la
permiteți timpului Scratch să termine redarea fișierului. Se utilizează apoi un alt bloc de control
configurați un test condițional care evaluează valoarea atribuită lui Count pentru a vedea dacă este
mai mare de 2 și, dacă este, se folosește un alt bloc de control pentru a termina scriptul
execuţie. Dacă valoarea atribuită numărării nu este mai mare de 2, atunci ultimul cod
blocul situat în partea de jos a buclei este executat, incrementând valoarea lui
Numărați până la 1. Bucla se repetă și se execută din nou.
Prima dată când rulează bucla, valoarea atribuită Count este 1. Bucla trebuie
iterați de două ori înainte ca valoarea numărării să fie setată la 3, rezultând terminarea
a executării scenariului. Din acest motiv, fișierul audio va fi redat de trei ori.

59
Modul în care este scris acest script, bucla sa se va executa de 14 ori și se va opri
executând atunci când valoarea contorului ajunge în cele din urmă la 15.

comparație logică
În plus față de blocurile de cod concepute pentru a efectua matematică și comparație
operațiuni, Scratch oferă, de asemenea, acces la trei blocuri de cod care acceptă logica
operații de comparație. Aceste blocuri de coduri sunt prezentate în Figura 8.6.
Primul bloc de cod este utilizat pentru a testa două seturi diferite de valori pentru a determina dacă
ambele
sunt adevărate. Al doilea bloc de cod este utilizat pentru a testa două seturi diferite de valori
stabiliți dacă cel puțin unul este adevărat. Și ultimul bloc de coduri vă permite să evaluați două
valori pentru a determina dacă condiția testată este falsă (nu este adevărată).
Pentru a vă ajuta să înțelegeți mai bine cum să lucrați cu toate aceste trei blocuri de cod,
să trecem în revistă câteva exemple. Primul exemplu, prezentat în continuare, este un script care se
execută de fiecare dată când se face clic pe butonul steag verde. Când se întâmplă acest lucru,
valoarea
atribuit variabilei Count este setat la 50. Apoi, se folosește un bloc de cod de control
analizați valoarea atribuită numărării. Dacă valoarea numărării este mai mică de 100 și, de asemenea
mai mare de 10, atunci instrucțiunea de final încorporată în blocul de control este
executat. Cu toate acestea, dacă ambele condiții testate sunt evaluate ca false, încorporatul
blocul de cod nu este executat.
Scratch este foarte flexibil în suportul său pentru blocuri de numere. De exemplu, dacă preferați, ați
putea
schimbați ordinea în care apar cele două blocuri de numere încorporate (de exemplu, verificarea
pentru a vedea asta
Numărul este mai mare de 10 înainte de a vă asigura că Numărul este, de asemenea, mai mic de 100)
și
rezultatele ar fi aceleași

60
Următorul exemplu este foarte similar cu exemplul anterior, cu excepția celui în loc de
asigurându-se că ambele condiții testate sunt evaluate ca fiind adevărate, scriptul a fost modificat
astfel încât numai una dintre condițiile testate trebuie evaluată ca fiind adevărată în
ordinea executării blocului de cod încorporat.

Acest ultim exemplu prezintă un script care efectuează un test negativ, verificând dacă
două valori nu sunt egale în loc să verifice dacă sunt egale. Ca urmare, dacă
valoarea atribuită numărării nu este egală cu 50, ceea ce nu este, blocul de cod
încorporat în blocul de control este executat.

61
62
blocul de cod prezentat returnează valoarea rotunjită pentru a
valoarea numerică specificată, rotunjită la cel mai apropiat număr întreg, după cum este demonstrat
în exemplele următoare, care returnează valori de 4 și respectiv 5.

abs. Returnează valoarea absolută, non-negativă a unui număr


creată urmând o serie de pași, așa cum este subliniat
Aici:
1. Crearea unui nou proiect de aplicație Scratch.
2. Adăugarea unui fundal pe scenă.
3. Adăugarea și îndepărtarea spritelor.
4. Adăugarea variabilelor necesare aplicației.
5. Adăugarea unui fișier audio la aplicație.
6. Adăugarea de scripturi la fiecare buton pentru a colecta presupunerile jucătorului.
7. Adăugarea logicii de programare necesare procesării ghicirilor jucătorului.
8. Salvarea și executarea muncii.
Numere aleatorii

63
Adaugarea bulelor de dialog pentru a face actorii sa vorbeasca atunci cand se schimba costumele.
Folosim blockul Say hello!for 2 secs si schimbam textul din acesta pentru a face actorul sa spuna
altceva.
balerina spune up pentru o secunda, balerina se ridica
balerina se ghemuieste si spune down Block-urile violet Looks apar/reapar actoriise maresc sau se
micsoreaza. Ascunderea actorilor - pentru aceasta folosim block-ul hide cu acesta actorul se afla
inca pe scena si se mai poate misca dar nu poate fi vazut daca nu este folosit block-ul show pentru a
fi vizibil din nou.
Ascunde si arata - folosim block-ul hide pentru a face un actor sa dispara, iar ca sa-l facem sa apara
din nou apasam pe show. Acestea se asesc in sectiunea Looks din paleta de block-uri.
Pisica disparuta - aceasta apare/reapare dar continua sa se miste chiar daca nu o putem vedea.
ca scriptul sa ruleze apasam pe steagul verde
-in bucla forever avem
-scriptul asteapta o secunda
-hide bloc ce ascunde pisica
-turn 90 degree-acest block roteste pisica in sensul acelor de ceasornic
-pisica se misca si atunci cand este ascunsa
-show block ce arata din nou pisica

Dimenisiuni si efecte un script poate schimba dimensiunea unui actor si a-i adauga efecte.
change size by10 - introducem numere pozitive pentru a face actorii mai mari si numere negative
pentru a face actorii mai mici
set size to 100%-numerele mai mari fac actorii maimari iar numere mai mici ii sa se micsoreze
change pixelate effectby25- alege tipul de efect din meniul extins, aacesta face ca actorul sa nu para
foarte clar, schimbam numerele din block-uri pentru a stabili cat de puternic este un efect
set color effect to 0 -fiecare culoare este reprezentata de un numar pe care-l schimbam pentru a
stabili culoarea
clear graphic effects-reseteaza toate efectele -adaugarea unor efecte grafice ca sa schimbam
infatisarea actorului sau pentru a-i modifica forma
Utilizarea efectelor pentru teleportare- adauga un actor fantoma din categoria Fantasy astfel incat sa
para ca se teleporteaza cand dam click pe ea
when this sprite clicked
clear graphic effects
repeta de 20 de ori - change ghost effect by 5 -efectul fantoma face ca actorul sa dispara treptat
repetand acest block de 20 de ori actorul o sa dispara complet
glide 0.1secs to x pic random -150 to 150 y pick random -150to 150 block-ul Operators seleecteaza o
pozitie orizotala la intamplare sau selecteaza o pozitie verticala la alegere, acest block face fantoma
sa se miste incet ascunsa vederii
change ghost effect by-5 acest block face ca actorul sa reapara incet
Evenimente Blocurile maro Eventsdin Scratch deruleaza scripturi cand se apasa pe o tasta, facem
click pe un actor sau folosim o camera web sau un microfon . Un eveniment este un lucru care se
intampla click pe steagul verde.
-blocurile care gestioneaza evenimentele se duc in partea de sus a scriptului care asteapta pana ce
evenimentul are loc si apoi ruleaza.
-when this sprite clicked din meniul Events tragem acest block pentru a porni scriptul
-play sound meow until done- pisica are acest efect sonor atasat, pisica miauna cand dam click pe
actor
Cand apasam o tasta un program poate reactiona cand apasam diferite taste
64
when H key pressed
say hello for 1 secs -actorul spune salut atunci cand este apsata tasta h
When g key pressed algem tasta
say goodbye for 1secs -schimba textul - la apsarea testei g actorul spune Goodbye
Evenimente sonore- Actorii pot detecta cat de puternice sunt sunetele dintr-o incapere de la 0-incet
pana la 100 foarte tare
Block-ul Whwn loudness>10 pentru a face scriptul sa porneasca atunci cand sunetele sent foarte
puternice.
Pisica sensibila la zgomot
-adaugam imaginea din fundal room3 din biblioteca de fundaluri
Striga in microfon - pisica sare din scaun si miauna
when loudness>40 schimbam numarul in 40
go to x145 y 130 - face pisica sa sara
play sound meow until done
go to x 145 y0 -asta face pisica sa cada la loc
Detector de miscare prin camere web
when video motion>40 schimbam numarul in 40
play sound meow until done detecteaza miscarea folosind blockul whwn loudness>10 dam click pe
meniu pentru a schimba loudness in video motion. Scriptul porneste cand ne miscam prin jur destul
de mult
Schimbarea fundalului - un actor poate reactiona la schimbarea fundalului inca re actorul sa
disparaapoi adaugam block-ul when backdrop switches to backdrop1 pentru a face aceasta.
when backdrop switches to desert
hide ascunde actorul cand se schimba fundalul
Bucle simple - este o parte a unui program care se repeta
Din sectiunea Control blocurile de bucla ne spun ce blocuri se repeta si de cate ori.
-bucla forever toate blocurile din blocul forever se vor repeat la nesfarsit, nu putem lipi ceva la final
pentru ca bucla forever nu se termina niciodata. Cand se ternina ultimul block din bucla, acesta o ia
de la inceput
Forever - elibereaza blocurile in aceasta bucla pentru a repeta actiunile la nesfarsit
-move 10steps, if on edge, bounce cand cele 2 blocuri se termina programul merge din nou la
inceputul buclei
Repeat lop
pentru a repeta o actiune de un anumit numar de ori, folosim blocul repeat 10. Schimbam numarul
din acesta pentru a stabili de cate ori se va repeta bucla. Actorul Dinosaur1 este adaugat la un nou
proiect.
-when clicked
-repeat 3 - o blucla ce se repeta de 3 ori
switch costume to dinosaur1-d -actorul se ridica in picioare
wait 0.5 secs - asteapta 0.5 secunde
switch costume to dinosau1-c actorul sta intr-un picior
wait 0.5 secs apoi putem adauga mai multe blocuri dupa o bucla repeat
Dinozaur dansator care repetaa miscarile de dans de 3 ori
Bucle in cuib adica pot fi puse una in alta, dinozaurul isi termina dansul mergand din stanga in
dreapta si se gandeste un moment apoi danseaza din nou si se opreste la click pe butonul rosu de
oprire. Bucla forever are alte bucle care se repeta in interirul ei
-blocul forever inconjoara tot codul
-in prima bucla repeat 3 miscarea de dans prima, apoi dinozaurul se misca 3 pasi la drepta, api avem
o mica pauza de o secunda, iar a 3 a bucla repeat in are dinozaurul se misca 3 pasi la stanga, ultimul
in care scriem un mesaj al actorlui care o sa apara intro bula.

65
Creioane si testoase in care fiecare actor are un creion care poate trasa o linie in spatele acxestuia
orinde se deplaseaza -activam creionul si miscam actorul pe scena. Blocuri verzi controleaza creionul
cand activam blocul pendown si dezactiva cand folosim blocul pen up. Clear-sterge toate desenele,
stamp lasa o imagine actorului.

pentru a desena un patrat punem creionul jos pe scena si miscamactorul in forma de patrat folosind
o bucla pentru a trasa cele 4 laturi prin intoarcere la colturi.

66
Ca sa schimbam forma Prima data codul deseneaza un patrat , iar pentru a desena un triunghi
schimbam bucla repeat de trei ori pentru cele 3 laturi si modifica intoarcerea de la 90 la 120 de
grade. pendown activeaza creionul, move 100 steps -traseaza o latura patratului, turn 90 degrees
intoarce la colturi, wait a secs asteapta o secunda sa vada ce se intampla.

67
Sa scriem pe cer in care controlam un avion. Acesta cand zboara lasa o dara de fum in urma lui astfel
incat sa desenam ceva.Folosim tastele stanga si dreapta pentru a intoarce avionul Activam fumul cu
tasta A si-l dezactivam cu tasta z. Apasam tasta de spatiu pentru a sterge cerul.Folosim doar culori
care apar pe interfata Scratch. Pentru a selecta rosu dam click in patrat si apoi butonul rosu de
deasupra scenei. Facem linia mai groasa. Bucla forever pastreaza avionul in miscare. if on edge
bounce - pastreaza avionul pe scena.

Grafica testoasei -utilizam actorii pentru a desena. Exista un tip de robot care se numeste testoasa si
care poate fi miscat pe podea pentru a trata desene. Primul limbaj de programare care a folosit
grafica testoasei se numei logo.

Turn 10 degrees rotatie la drepata


sau roattie la stanga
pendown activeaza creionul

68
pen up -dezactiveaza creionul
clear sterge urma trasata de creion

Variabile -in programare o variabila este numele dat locului unde poti stoca informatii. Acestea sunt
folosite pentru a ne aduce aminte de lucruri precum scorul, numele jucatorului sau viteza unui
personaj.
Crearea unei variabile pentru a o folosi in program utilizam sectiunea Data din paleta de blocuri unde
apra noi blocuri.
-1)crearea unei variabile -dam click pe butonul Data din paleta de blocuri apoi selectam make a
variable. Acestea sent ca niste cutiiin care poti depozita diferite fragmente de informatii pentru a le
folosi in programul nostru.
-2)dam un nume noii variabile care ne va ajuta sa ne aducem aminte fiecare ce face. selectam ce
actori vor folosi variabila apoi dam ok. Putem de asemenea, sa selectam ca doar un actor sa
foloseasca acea variabila.
-3)Odata creata noua variabila, in paleta de blocuri apar noi blocuri. Meniurile din aceste blocuri ne
lasa sa selectam variabila la care se aplica acestea daca am creat mai multe.
Utilizarea unei variabile - variabile pot fi utilizate pentru a schimba viteza unui actor.
1)setam valoarea unei variabile folosim blocul set steps to 0 si schimbam numarul in 5, tragem block-
ul move 10 steps in script dar lasa blocul variabile steps peste 10.
set steps to5 seteaza valoarea variabilei steps la 5
move steps steps steps inseamna 5 dupa cum a fost stabilita valoarea
schimbam valoarea unei variabile -utilizam blocul change blocul change steps by 1 pentru a creste
valoarea variabilei steps cu 1 pe care-l punem in interiorul blocului forever ca pisica sa devina
incontinuumai rapida. Vriabila steps din interiorul blockului forever continua sa creasca pe masura ce
bucla forever merge la infinit.

69
Stabilim viteza folosinda blocul set steps to 0. Stergerea variabilelor - cand nu mai dorim o variabila
dam click dreapta pe ea in paltea de blocuri si apoi selecteaza delete variable so pierdem informatiile
din aceasta.

70
putem redenumi sau sterge o variabila. Avem de asemenea, variabile read only care pot fi setate in
Scratch si nu pot fi modificate. Dr sent tot variabile pentru ca valoarea lor se modifica. Aceste blocuri
sent cunoscute sub numele de sensing block. distance to-stabileste disanta pana la un anumit lucru
cum a rfi cursorul mouse-ului.
costume# raporteaza numarul costumului pe care-l poarta actorul, diretion -ne spune in ce directie
se deplaseaza actorul
Matematica - pe langa stocarea numerelor in variabile , scratch efectueaza tot felul de calcul utilizand
blocurile Operator.
Adunari -avem 4 blocuri Operator care pot fi folosite pentru calculi simple - adunare, scadere,
inmultire, impartire. Adunare Blocul + aduna cele doua numere din bloc. scadere Blocul - scade al
doilea numar din primul, inmultire Computerele folosesc simbolul * pentru inmultire pentru ca x
inseamna litera. Impartire nu exista semn pentru impartire pe tastatura asa ca Scratch foloseste
simbolul / Blocul Think tipareste rezultatele.

Rezultate intr-o variabila pentru calcule mai complexe cum ar fi stabilirea pretului de vanzare al
obiectului putem utiliza valoarea unei variabile intr-o suma. Rezultatul poate fi stocat intr-o variabila.
1)crearea unei variabile mergem la sectiunea Data a paletei de blocuri si creeaza doua variabile
saleprice si price. 2)stabilim pretul selectam blocul set price si fixeaza pretul unui obiect la 50.
Set price to50 -folosim meniul cascada pentru a selecta price. 3)calculeaza pretul de vanzare -flosim
acest script pentru a calcula jumatate din pretul unui obiect si fixam ca prêt de vanzare set sale price
to price /2 tragem variabile price in fereastra pentru a imparti pretul la 2 .

71
Numere aleatorii -block-ul pick random poate fi folosit pentru a selecta un numar la intamplare intre
doua valori. Acest block este util pentru a arunca zarurile intr-un joc sau pentru momentele in care
combinam costumele unui actor. Folosim numere la intamplare pentru a adauga surprise in jocuri.
Un extraterestru poate fi facut sa apara intr-un loc intamplator sau dupa o anumita perioada de timp,
pentru a selecta o valoare intamplatoare, cand dam cu zarurile sau un costum ales la intamplare
pentru un actor. pick random 1to10 -putem schimba numerele din bloc alege un numar la intamplare
pentru a alege o luna la intamplare schimba numerele din care alegem o cifra intre 1 si 12.

wait 2 secs -acest bloc face ca actorul sa astepte doua secunde inainte de a schimba un costum
pick random 1 to 10 alege un costum intre 1 si 10 la intamplare schimbare de costume acest script
schimba costumul unui actor la intamplare la fiecare 2 secunde. Costume la intamplare care pot face
un actor sa para ca se misca sau pot sa ii dea haine diferite.

72
Matematica dificila -blocurile simple Operator pot face cele mai multe calculi dar Scratch poate
efectua si operatiuni matematice mai complexe. Blocul mod imparte doua numere si da restul adica
numarul ramas dupa impartire, blocul round rotunjeste spre cel mai apropiat numar intreg iar blocul
sqrt da radacina patrata a unui numar.
10 mod3 imparte 10 la 3 si da restul numarul care ramane
round 44.7 gasim numarul intrgcel mai apropiat
sqrtof9 calculeaza radacina patrata a lui 9
Sectiunea Operator are blocuri de functoo de matematica avansata care pot fi folosite penru a face
calcule complexe.
Siruri si liste - o secventa de litere si simboluri se care pot contine orice caracter de pe tastatura
(inluzand spatiile albe) si pot avea orice lungime. Sirurile pot fi grupate impreuna in liste. Folosim
cuvintele -programele au nevoie adesea sa isi aduca aminte cuvinte, numele unui jucator Variabilele
pot fi create pentru a-si aminti cuvinte. Programele Scratch pot pune si intrebari utilizatorului la care
acesta sa poata sa raspunda intr-o caseta pe ecran.
1)cream o variabila - dam click pe butonul Data din paleta de blocuri si apoi pe blocul Make a variable
- variabila numita greeting
2)pune o intrebare -un script care face ca actorul sa puna o intrebare. orice intrebare utilizatorului in
caseta de text care apare pe ecran este stocat intr-o noua variabila numita answer. scriptul combina
sirurile continute in variabilele grreting si answer pentru a intampina utilizatorul.

73
74
acest bloc pune hello in variabila greeting set greeting to hello
ask what is your name and wait caeta ask in sectiunea sensing a paletei de blocuri face sa apara o
caseta text in care utilizatorul introduce raspunsul
bula say creeaza o bula de vorbire penru actor iar variabila greeting include sirul hello, iar variabila
answer din Sensing contine orice a introdus tilizatorul in caseta de text
Realizarea de liste -variabilele sent perfecte daca vrem sa ne aducem aminte un lucru sa ulucruri
similare. Listele pot stoca fragmente de date (siruri si numere) in acelasi timp ex toate scorurile
obtinute la un joc.
1) cream o lista incepem un nou proiect la sectiunea Dta din paleta de blocuri si facem click pe
butonul Make a list si o denumim sentence.

75
2)utilizarea listei- utilizatorul trebuie sa introduca cuvinte intr-o lista. Fiecare cuvant apare in bula de
dialog a actorului si este adugat in lista.

76
77
delete all of sentence acest bloc se asigura ca lista este goala la inceputul programului
blockul ask ii cere utilizatorului sa introduca un cuvant
add answer to sentence - acasta adauga raspunsul utilizatorului la lista
think sentence for 2 secs blocku lthink face sa apara o bula de ganduri , adaugam sentence iar lista va
si afisata in bula de ganduri
Sa vizualizam lista din caseta de langa lista in paleta de blocuri , lista este afiasta pe scena. Putem
vedea fiecare cuvant nou pe masura ce este aduagat la lista. scratch stie numarul de cuvinte
adaugate la lista.

Blocurile pot fi folosite pentru a schimba continutul unei liste. Fiecare obiect dintr-o lista are un
numar, iar primul obiect este numarul 1 siasa mai departe. Numerele pot fi folosite pentru a inlatura,
insera sau schimba locul lucrurilor.
delete 1 of sentence sterge primul obiect din lista
insert cirese at 1 of sentence adauga cirese ca primul obiect din lista
replace 1 of sentence with cirese inlocuieste primul obiect din lista cu cirese

78
bucla parcurge fiecare element al listei din parttea stanga si le introduce in mod aleator in lista din
partea dreapta initial goala. Ca rezultat avem o lista ca prima doar ca intr- ordine diferita linear time.

79
80
Coordonate -pentru a pune un actor intr-un loc anume sau pentru a-i afla pozitia exacta, astfel o
pereche de numere care indica pozitia unui actor pe scena folosind o grila x si y.
Ppozitiile x si y ale unui actor si ale cursorului sunt aratate pe interfata Scratch . x:240 y:180
coordonatele cursorului sunt afisaste in partea din dreapta jos a scenei. pozitia unui actor -putem
vedea coordonatele actuale ale unui actor in coltul din dreapta sus al zonei scripturilor. xposition si y
position arata coordonatele pe scena selecteaza casutele din dreptul blocurilor pentru a arata pozitia
actorului pe scena. Grila x si y - pentru a indica un loc numara pasii la stanga sau la dreapta si sus sau
jos pornind de la mijlocul scenei. Pasii la stanga sau la dreapta sunt x, iar pasii in sus sau in jos sunt y.
Numerele negative pentru a ne misca la stanga sau in jos.
Miscarea actorilor - coordonatele sunt folosite pentru a micsora un actor intr-un anume loc de pe
scena.nu conteaza cat de departe sau cat de aproape este acel punct. Blocul glide 1 secs to x:0 y:0 din
sectiunea Motion a paletei de blocuri face actorul sa alunece usor.

81
controleaza actorul cu un script - descifram traseul pe care-l va urma actorul cand vom rula scriptul
-prmul bloc schimba numerele coordonatelor penrua face actorul sa mearga in alta parte
change x by -10 misca actorul la stanga
set x to 0 misca spre mijlocul scenei
set y to 180 misca in sus spre partea de sus a scenei

pen down blocul traseaza o linie in urma calului cand el se misca


primul bloc din bucla forever din meniul Operator s selecteaza o pozitie orizontala la intamplare.
si una vertical la intamplare.
Sunete/ zgomote -putem adauga sunete progranelor Scratch din blocul Sound pentru a incerca
efectele de sunet si de a crea muzica. Folosim fisierelede sunet pe care le avem déjà sau inregistram
sunete. Pentru a reproduce un sunet acesta trebuie adaugat unui actor. Fiecare actor are propriul set
de sunete care sent controlate dand click pe sectiunea Sounds de deasupra paletei de blocuri.
Redarea unui sunet - cele 2 blocuri play sound si play sound until done (programul asteapta pana ce
sunetul s-a terminat inainte de a continua).
play sound meow- foloseste meniul pentru a allege ce sunet redam
play sound meow until done- urmatorul bloc din script nu va rula pana ce nu va termina de redat
sunetul miau. Da mai tare are propriul control al volumului care este stability cu ajutorul
numerelor(0 cel mai redus, 100 cel mai ridicat)
set volume to 100% este volumul maxim

82
change volume by -10 acest bloc face actorul mai zgomotos sau mai tacut foloseste un numar negativ
pentru a-l face mai tacut. De asmenea,Scratch are blocuri care pot fi folosite pentru a inventa sunete
musicale, instrumente musical si tobe, lungimea fiecarei note este masurata in beats.
play note 60 for 0.5beats decide cat de acuta sau de grava este nota, , numerele mai mari fac nota
mai lunga, poate fi si mai scurta de un beat
play drum 1 for 0.25 beats- foloseste acest meniu pentru a allege dintre diferite tipuri de tobe
set instrument to 1 -click pentru a allege un instrument dintr-un meniu in cascada
rest for 0.25 beats -acest bloc adauga o pauza, daca marim numarul pauza va fi mai lunga
Redarea muzicii - compunerea unei melodii prin imbinarea notelor. Cream o noua variabila note apoi
adaugam scriptul oricarui actor pentru a crea o bucata muzicala.

-stabileste mai intai valoarea unei note variabile, alefem un instrument, aoaugam o bucla forever in
jurul celor 3=2 blocuri
tragem variabila note din sectiunea Data a paletei de blocuri. Facem o serie de notecare sunt redate
cand se face click pe steagul verde. Inaltimea unei note creste cu cate o trepta de fiecare data iar
fiecare nota este redata timp de jumatate de beat. tempo-ul -viteza muziciidecide cat de lung este
un beat intr-o bucata muzicala.
set tempo to 60 bpm(beats pe minut)
change tempo by 60 creste temo-ul pentru a face muzicamai rapida sau foloseste un numar negative
pentru a o face mai lenta.

83
tempo - bifarea casutei face tempo-ul actorului sa apara pe scena
sa dam cu zarul - un program ca creeeaza un zar ce poate fi rostogolit, vom vde acine are scorul cel
mai mare sau de utiizat cand jucam un alt joc. Folosim 6 costume fiecare costum are o fata a zarului
cu un numar pe ea de la 1 la 6.
1)selecteaza butonul pensula de sub scena pentru a desena un nou actor. Dam click pe butonul
dreptunghiular din stanga zonei de desen. a sa coloram zarul selectam culaorea solida din paleta apoi
in suprafata de desen tinem apasata tasta shift cu butonul din stanga al mouse-ului apsata tragem
cursorul pentru a desena un patrat in mijloc.
culorile se pot schimba -sub zona de desen se afla comenzi de culoare. click pe dreptunghiul solid
pentru a desena un bloc de culoare solida. Dam click pe dreptunghiul gol pentru a desena conturul
unui patrat sau dreptunghi. Folosim cursorul pentru a schimba grosimea liniilor patratului. Pentru a
alege o culoare dam click pe ea.
3) Facem click dreapta pe costum in stanga zonei de desen si alegem duplicate, repteam pana ce
obtinem 6 costume.-folosim meniul contextual pentu a copia costumul zarului.
4)selectam un costum. Facem click pe butonul rotund de pe suprafata de desen si alegem culoarea
alba solida din paleta. Adaugam pete fiecaruia din cele 6 costume pana ce realizam toate cele 6
costume pana ce realizam toate cele 6 fatete ale zarului.
butonul rotund face un cerc perfect cand este apasata tasta shift
costume5 are 5 buline
5)adaugam scriptul actorului zar, apasam pe bara de spatiu pentru a rostogoli zarul, rostogolim zarul
de mai multe ori pentru a verifica daca se pot vedea toate cele 6 costume.
when space key pressed -cand apasam pe bara de spatiu zarul se rostogoleste
-switch costume to pick random 1 to 6 selecteaza un costum la intamplare.
6) uneori putem obtine de doua ori acelasi numar si se pare ca programul nu merge pentru ca
imaginea nu se schimba . Scrptul face ca zarul sa se schimbe de cinci ori costumul inainte de a se opri.
De fiecare data cand apasam pe bara de spatiu, rata ca zarul se rostogoleste.
Instrumente de rotatie - pentru ca zrul sa se rostogoleasca cand ruleaza scriptul putem roti fiecare
costum intr-un unghi diferit.click pe butonul convert to vector din coltul din dreapta jos. Cand dam
din nou click pe zona de desn va aparea un intrument de rotatie.
when space key pressed
repeat 5
switch costume to pick random 1 to 6 - fiecare costum este un numar diferit de pe zar
wait 0.2 secs -pauza mica pentru a vedea cum se rostogoleste

84
Computerele decid ce sa faca punand intrebari si stabilind daca raspunsurile sunt adevarate sau false.
Intrebarile care au doar doua raspunsuri posibile sunt numite expresii booleene.
Compararea numerelor putem compara numerele folosind blocul = din sectiunea Operaors aflata in
paleta de blocuri.

85
raspuns adevarat folosit blocul = intr-un bloc de vorbire face true sau false sa apara in bula de dialog
a pisicii. blocul = va da unul din doua raspunsuri adevarat daca cele doua numere din casete sunt
egale si false daca nu sunt. say 3=2 -false aceste numere nu sunt egale asa ca in bula de dialog apare
cuvantul false. raspuns fals daca numerele din bloc sunt diferite, bula de dialog a actorului va contine
cuvantul false.

compararea variabilelor -putem folosi variabilele din interiorul blocurilor de comparare. nu


comparam numere fixe pentru ca rezultatul va fi acelasi in timp ce valoarea variabilelor se poate
schimba. set age to 10 -creeaza o variabila dam click pe butonul Data din paleta de blocuri si cem o
noua variabila age. Ii stabilim valoarea la 10 . tragem variabila age in blocurile de comparare.
age=7 acest semn inseamna este egal astfel incat blocul intreaba daca age este egala cu 7. raspunsul
este false avand in vedere ca age este 10.
age>11 acest semn inseamna mai mult decat astfel incat blocul intreaba daca age este mai mare
decat 11. raspunsul in acest caz este false pentru ca 10 nu este mai mare decat 11.
age<18 acest semn inseamna mai putin decat astfel incat blocul intreaba daca age este mai mica
decat 18 raspunsul in acest caz este true -> 10 este mai mic decat 18
comparam numerele cu ajutorul blocurilor verzi de comparare din meniul Operators. Pe langa faptul
ca verificam daca doua numer sunt egale putem verfifica daca unul este mai mare sau mai mic decat

86
celalalt.

87
compararea cuvintelor blocul = nu este folosit doar pentru numere poate fi aflat pentru a verifica
daca doua siruri sunt egale La compararea sirurilor ignora litere mari.
set name to Andreea - creearea unei variabile pentru a face experimente cu compararea sirurilor,
cream o noua variabila numita name si ii dam valoarea Andreea.
name=Andreea tragem si eliberam variabila in blockul de comparare , Andreea - variabila name
contine Andreea asa ca raspunsul este adevarat daca name= Dan raspunsul este fals pentru ca
variabila nu contine Dan.
Block-ul not poate simplifica lucrurile inversand raspunsul unei expresii booleene. Este mai usor sa
verificam daca varsta cuiva nu este 10 decat sa verificam orice alta varsta posibila.
blocul not schimba raspunsul din adevarat in fals si din fals in adevarat.
age=7 fara blocul not aici 10 nu este egal cu 7 deci raspunsul este fals
not age =7 cu blockul not adaugarea blocului not aceleiasi intrebari schimba raspunsul. cum 7 nu
este egal cu 10 , raspunsul este adevarat.
combinareaa ntrebarilor - pentru a pune intrebari mai complicate putem combina blocurile de
comparare si se pot pune mai multe intrebari in acelasi timp. Blocurile de comparare blocurile or si
and sunt folosite pentru a combina expresiile booleene in diferite moduri.

88
age<18 or age >65 raspunsul este adevarat cand fie partea dreapta fie cea stanga este adevarata in
care verificam daca o persoana are mai putine de 18 ani sau mai multe de 65.
age>10 and age<15 aici este adevarat doar cand ambele laturi sunt adevarate, aici sunt verificate
daca persoana are 11,12,13,14 ani.
Decizii si ramuri cand testam daca un lucru este adevarat sau fals folosim informatii pentru a spune
computerului ce sa faca mai departe. Executa actiuni diferite in functie de raspunsul adevarat sau
fals. Luarea deciziilor- blocurile if folosesc expresii booleene penru a decide ce sa faca mai departe.
ca sa le folosim punem alte blocuri in interiorul lor. Blocurile din interiorul blocurilor if vor rula doar
daca raspunsul la expresia booleeana este adevarat.

if expresie then - tragem o expresie booleeana in aceasta fereastra. blocul if-then daca expresia
booleeana este adevarata, blocurile din interiorul blocului if-then vor rula
if expresie then else daca este fals, blocurile din interiorul else vor rula.
blocul if-then-else Daca expresia booleeana este adevarata, ruleaza primul set de blocuri. Daca nu,
ruleaza al doilea set.
Utilizarea blocului if-then
Acest block ne lasa sa alegem daca sa rulam sau nu o parte dintr-un script, in functie de raspunsul la
o expresie booleeana.

89
90
91
blockul if-then are 2 ramuri
raspunsul este da?
daca da - adevear ->miauna
daca nu - fals -> nu miauna
blockul if-then functionare - programul verifica daca expresia booleeana este adevarata. Daca da,
acesta ruleaza blocurile din interiorul buclei blocului if-then.
tragem blocul =din sectiunea Operators in blocul if-then, apoi pune variabila answer di sectiunea
Sensing in acesta. answer= yes
play sound meow until done acest bloc este plasat in interiorul blocului if-then astfel incat pisica sa
miaune numai daca raspunsul este adevarat yes.
think hmmm for 2 secs aceste blocuri think sunt in afara buclei if-then astfel incat ele vor rula oricare
ar fi raspunsul la intrebare. Cand miauna pisica - acest program verifica expresia booleeana si va rula
doar partea din interiorul blocului if-then daca este adevarata. Aceasta inseamna ca pisica miauna
atunci cand ii spunem sa miaune.

Instructiuni de ramificare - Daca o conditie este adevarata si altceva, daca nu. cand vrem ca un
program sa faca un lucru blocul if-then-else ofera un program cu 2 rute posibile adica ramuri. Doar o
ramura va rula in functie raspunsul la expresia booleeana.
Este raspunsul da?
Dca da yes adevarat -> spune I like you too!
daca nu false -> spune That is not very friendly!!
programul verifica daca am scris yes, daca da, arata primul mesaj, daca nu, pe al doilea.

92
say si mie imi place de tine for 2 secs aceasta ramura va rula daca raspunsul la intrebarea yes
say nu este foarte prietens for 2 secs aceasta ramura va rula daca raspusul la intrebare este oricare
altul decat yes
Forme booleene Blocuri cu expresii booleene din Scratch au margini ascutite mouse down
blocurile sensing aceste blocuri pot testa daca un actor atinge alt actor sau daca este apasat un buton
repeat until blocuri control cu forme booleene pentru expresii booleeane
Simt si detectie -blocurile Sensing permit unui script sa vada ca se intampla. ele pot detecta
comenzile de pe tastatura lasand actorii sa reactioneze cand se ating.
Comenzile de pe tastatura folosim blocurile sensing cu blocurile if-then ne permit sa miscam actori
pe ecran folosind tastatura. Blockul key pressed are un meniu al majoritatii tastelor astfel incat un
actor sa poata fi programat sa reactioneze la orice tasta. Putem lega actiunile de click ul unui buton al
mouse-ului.
key space pressed acest block verifica daca este apasata vreo tasta, putem alege ce tasta sa fie
verificata, mouse down acest block verifica daca butonul mouse-ului este apasat.
Blocurile sensing - adaugarea acestor blockuri intr-un bloc if-then permite programului sa detecteze
daca este vreo tasta apasata cu butonul mouse-ului.

93
controlul actorilor comenzile executate de pe tastatura oera controlul precis asupra actorilor mai
ales la jocuri. scriptul de miscare ne permite sa miscam actorii sus, jos, la stanga sau la dreapta
folosind tastele cu sageti de pe tastatura.
blocul forever - permite punerea tuturor comenzilor iar scriptul verifica in mod repetat tastele
apasate. if key up arrow pressed scriptul verifica daca sageata in sus este apasata, daca da actorul se
misca pe verticala pe ecran.
Coliziuni intre actori - este util sa stim cand un actor il atinge pe altul la jocuri. blocurile sensing
pentru a pune lucrurile in miscare atunci cand un actor il atinge pe altul sau cand un actor
traverseaza o zona de o anumita culoare.
touching frog foloseste blocul pentru a identifica momentul in care un actoril atinge pe altul
touching color blocul simte cand un actor atinge o zona de o anumita culoare.
Utlizarea bloc sensing -pentru a transforma o pisica pe care o poti controla intr-un joc, adaugam
scriptul de miscare creat pisicii, adaugam fundalul room1 si actorul elefant, butonul Sounds adauga
efectul sonor trompet2 elefantului. cu blocurile sensing controlam relatia pisica elefant. pe masura
ce pisica se apropie elefantul creste. cand pisica il atinge elefantul isi schimba costumul, scoate un
sunet si se ascunde.

bucle complexe - buclele simple sunt folosite pentru a repeta parti dintr-un program la nesfarsit sau
de un numar de ori. alte bucle mai intelogente pot fi folosite pentru a scrie progrme care decid cand
sa se repete instructiuni. Adaugam actorul dog1 la un proiect si apoi atribuim scriptul actorului

94
pisica . cand rulam scriptul repeat until se asigura ca pisica se misca in continuare pana ce atinge
cainele. se opreste ouch. blocul repeat until avand in interior alte blocuri ce continua sa se repete
pana ce se indeplineste conditia pisica atinge cainele.

set rotation style left-right acest block opreste pisica touching dog1 selecteaza dog1 din meniul
cascada, move 10 steps aceste instructiuni se tot repeta pana ce pisica atinge cainele, acesta se va
intampladoar cand pisica atinge cainele, testarea programului -muta cainele din calea pisicii si ruleaza
prugramul. trage si da drumul cainelui in calea pisicii pentru a vedea ce se intampla
stop - un alt bloc control util este blocul stop all car poate opri scripturile din rulare este util cand
vrem sa oprim actorii sa se miste la sfarsitul unui joc. stop all acesta opreste toate scripturile intr-un
program, stop this script - acesta opreste doar scriptul in care se gaseste respectivul block
stop other scrpt in script -acesta opreste celelalte scrioturi ale actorului, dar continua sa ruleze
scriptul in care se afla acest block. stoparea scripturilor - folosim meniul cascada pentru a alege ce
script sa fie oprit.
in asteptare - este usor sa jucam un joc sau sa vedem ce se intampla itr-un program daca putem sa
introducem pauza in script. Blocuri diferite pot face un script sa astepte un numar de secunde sau
pana ce un lucru este adevarat. wait 1 secs blocuri de asteptare blocul wait secs asteapta un anumit
timp. Blocul wait until raspunde la ceea ce se intampla in program.
wait 5 secs actorul asteapta 5 secunde si apoi va spune ceva, cu acet bloc putem introduce numarul
de secunde in care doresti ca actorul sa astepte.

95
wait until mose down actorul asteapta pana ce se apasa butonul mouse-ului
go to mouse-pointer imdeiat ce conditia este adevarata actorul se misca spre cursorul mouse-ului,
blocul wait until asteapta pana ce expresia booleeana din el se dovedeste adevarata
Mouse-ul magnetic -bucle diferite pot fi folsite impreuna pentru a face programe. Acest program
incepe odata ce se apasa pe butonul mouse-ului. Actorul urmareste cursorul mouse-ului pana ce
butonul este eliberat. Apoi topaie in sus si in jos de cinci ori, apoi se repeta intregul proces pentru ca
totl este introdus intr-o bucla forever.

repeat until not mouse down blocul not detecteaza cand butonul mouse-ului nu este apasat
repeat until - scriptul se repeta pana ce este eliberat butonul mouse-ului
change y by 20 acesta face actorul sa sara in sus
change y by -20 acesta face actorul sa alunece in jos
repeat 5 blocul face actorul sa topaie in sus si in jos de 5 ori
Trimiterea de mesaje este util ca actorii sa comunice intre ei. Actorii pot folosi mesaje pentru a le
spune altor actori ce sa faca. Scratch creeaza si conversatii intre actori.
Comunicare- blocurile de comunicare din mediul Events permite actorilor sa trimita si sa primeasca
mesaje. Mesajele contin informatii precum nume, pentru a corecta actiunile actorului. Actorii
reactioneaza doar la mesaje la care sunt programati sa reactioneze, ignorandu-le pe celelalte.
when I receive message1 blocul deruleaza un script cand un actor primeste un mesaj

96
un tip de bloc de comunicare permite unui actor sa trimita un mesaj. Celalalt ii spune actorului sa
primeasca un mesaj.

broadcast shark_here acest mesaj deruleaza scriptul care face steaua de mare sa se indeparteza de
rechin, steaua de mare fuge de rechin, aratand ca este inspaimantata
braodcast shark_gone acest mesaj ii spune stelei de mare ca rechinul a plecat deci se poate intoarce
in siguranta. steaua de mare aluneca la loc in mijlocul ecranului. cand soseste rechinul transmite un
mesaj iar steaua de mare sa se indeparteze inotand.

Conversatii pentru a crea o conversatie intre actori folosim broadcast message and wait cu blocurile
say ceea ce ii face pe actorisa vorbeasca folosind bule de dialog. in proiect avem 2 actori maimute.
broadcast message1 and wait blocuri de asteptare transmite un mesaj apoi asteapta ca toate
scripturile care reactioneaza la mesaj sa termine inainte ca programul sa continue

97
98
blocurile say lasa actorii sa vorbeasca folosind bulele de dialog say hello for 2 secs
broadcast hello and wait mesajul hello activeaza scriptul celei de a doua maimute
iar a 2 a maimuta ii raspunde primeia
say how are you for 2 secs cand se ermina al 2 lea script, continua primul
broadcast howareyou -> when I receive how are you mesajul how are you face sa inceapa al 3 lea
script

chatting monkey programul functioneaza pentru ca folosim blockul broadcast message and wait.
blocul broadcast message face ca maimutele sa vorbeasca in acelasi timp
Crearea blocurilor pentru ca sa evitam repetarea la nesfarsit a aceluiasi set de blocuri folosind o
scurtatura creand noi blocuri. Fiecare bloc nou poate contine mai multe instructiuni.
la crearea unui bloc care sa ruleze un script atunci cand sunt folosite asa-numitele subprograme sau
functii parti de cod reutilizabile.

Cream un nou bloc dam click pe more blocks si apoi selectam Make a block , scriem cuvantul Jump
apoi click pe ok. Apare un bloc nou jump in paleta de blocuri, iar un bloc define apare in zona
scripturilor.

99
make a block jump define jump defineste blocul jump in zona scripturilor 3)defineste blockul blocul
define spune ce blocuri sa ruleze cand folosim un bloc nou. Adaugam acest script pentru a defini
blocul. 4) Foloseste blocul intr-un script -noul bloc poate fi folosit acum in orice script.

100
Blocuri cu date - ferestrele dintr-un bloc nou pot fi folosite pentru a-i conferi acestuia numere si
cuvinte cu care sa lucreze. si astfel sa fie utilizate pentru a schimba cat de departe este mutat actorul
de catre bloc.
1)facem un nou bloc numit slide si apoi dam click pe options. Apoi selectam add number input si scrie
steps. Selectam add label text si schimbam in and shout Facem click pe Add string input si-l denumim
greeting apoi dam click pe ok.
2)definim blocul in aceste bloc define introducem variabilele steps si greeting . Tragem aceste
variabile din blocul define in script oriunde este nevoie de ele.
3)folosim blocul in script - adaugam scriptul unui actor, punand un numar diferit de pasi si de salturi
in bloc.

in blocul change x by steps trage variabilele din blocul define in script


change x by 0 -steps acest bloc face ca numarul de pasi sa fie negativ
when space key pressed deruleaza scriptul cand se apasa pe bara de spatiu
slide 20 and shout hello actorul aluneca 20 de pasi si striga helloo
slide 80 and shout cum merege? Actorul aluneca 80 de pasi si striga cum merge?

101
monkey mayhem (sa tintim si nimerim lilicaul cu banane)
-din lista de actori selectam maimuta, banane, liliacul 3 actori
-adaugam un fundal din biblioteca de fundaluri choose a backdrop
- dam dublu click pentru a selecta fundalul brick wall1 zidul de caramida sau un alt fundal diferit.
- mergem la biblioeca de actori pentru a adauga un nou actor jocului. Selectam Monkey1 din
sectiunea Animals. Utilizatorul va controla acest actor pe parcursul jocului.

set style left-right acest bloc Motion face maimuta sa stea dreapta
go to x:0 y: -90 aceasta misca maimuta in pozitia sa de start in josul scenei
key left arrow pressed blockul sesnsing detecteaza cand este apasata tasta cu sageata stanga
point in direction -90 face maimuta sa se intoarca spre stanga
next costume acest bloc face maimuta sa para ca se plimba prin schimbarea costumelor
point direction 90 face maimuta sa se intoarca spre dreapta
move 10 steps aceasta muta maimuta cu 10 pasi
Acum maimuta se deplaseaza stanga dreapta cu ajutorul tastelor. Adaugam un alt actor si alegem
Banane cu care maimuta sa tinteasca liliacul. La inceputul jocului, maimuta tine bananele, iar cand

102
apasam tasta de spatiu acestea vor fi aruncate la verticala pe scena. Bananele apar din nou in capatul
scenei de unde pot fi ridicate iar.

set rotation style left-right face ca bananele sa stea drepte


point in direction 0 stabileste directia bananelor spre sus
show face bananele vizibile pe scena sa apara mai tarziu
repeat until key space pressed bananele vor ramane lipite de maimuta pana ce se apasa bara de
spatiu
repeat 35 (move 10 steps) aceasta bucla misca bananele in sus pe scena
blocul if-then-else face ca bananele sa reapara random la intamplare fie pe partea stanga fie pe
partea dreapta a scenei
wait until touching Monkey1 acesta face ca scriptul sa astepte pana ce maimuta ridica bananele

Adaugam un alt actor alegem liliacul care zboara si care cade pe pamant daca este lovit de banane.
Adaugam Bat din biblioteca de actori apoi cream o noua variabila numita speed (doar pentru liliac).La
Data din paleta de blocuri selectam butonul Make a variable si debifam caseta de langa variabila
Speed din sectiunea Data astfel incat sa nu apara pe ecran.

103
104
-ln bucla principala forever liliacul se muta intr-o pozitie intamplatoare in stanga scenei, alegem
aleatoriu o viteza, apoi se misca in fata si in spate pe toata scena pana ce este lovit de banane. Cnd
este lovit, liliacul cade la pamant.
set rotation style left-right acesta pastreaza actorul liliac la verticalaforever inceputul buclei
principale a liliacului
go to x:-300 y: pick random 1 to 100 lliacul porneste din stanga scenei la o inaltime oarecare
point in direction 90 stabileste directia liliacului la dreapta
set speed to pick random 1 to 20 alege o viteza oarecare
repeat until touching bananas acesta face liliacul sa continue sa se miste pana ce este lovit
move speed steps tragem variabila Speed din sectiunea Data in acest bloc
broadcast lovit_de_banana creeeaza un bloc broadcast pentru a le spune celorlalti actori ca liliacul a
fost lovit va fi util ulterior pe parcursul programului
point in direction 180 stabileste directia liliacului spre in jos
repeat 40 (move 10 steps) face ca liliacul sa cada si sa iasa de pe scena.
Adaugam un cronometru - o variabila pentru a tine scorul sia numara liliecii loviti de maimuta
Adaugam un ecran de game over care sa apara imiediat ce timpul jucatorului a expirat.
-cream o noua variabila Time, care este disponibila pentru toti actorii din joc prin bifarea optiunii for
all sprites si de asemenea bifam casuta de langa variabila din paleta de blocuri astfel incat jucatorii sa
poata vedea timpul afisat pe scena.

105
Dam click pe imaginea mica a scenei din lista de scene apoi selectam butonul Backdrops de deasupra
paletei de blocuri. Click dreapta pe fundalul existent pentru a crea un duplicat la care aduagam un
text GAME OVER noului fundal.
Dam click pe butonul Scripts si adaugam scenei scriptul de mai sus pentru a declansa cronometrul.
Cand porneste cronometrul incepe o bucla de numaratoare inversa. Cnad bucla se termina apare
ecranul GAME OVER si jocul ia sfarsit.
set time to 30 acesta stabileste limita de timp la 30 de secunde
repeat until time=0 numara invers pana ce cronometrul ajunge la zero
switch backdrop to brick wall2 face schimbul cu fundalul GAME OVER
stop all incheie jocul
-Dam click pe actorul banane din lista de actori si cream variabila Score pe care o facem disponibila
pentru toti actorii si o mutam in partea din dreapta sus a scenei tragandu-l in acea zona, bifam caseta
pentru a vedea scorul pe scena.

106
107
Acest script aferent actorului banane seteaza scorul la 0 la inceputul jocului. set Score to 0

Scriptul de mai sus adaugat actorului banane- cand bananele lovesc liliacul se aude un sunet, iar
scorul creste cu 10 si bananele sunt ascunse.
cand sunt lovit de banane hide face ca bananele sa dispara
play sound pop adauga sunetul champ din biblioteca de sunete la actorul banane.
change Score by 10 de fiecare data cand este lovit liliacul jucatorul castiga 10 puncte.
Putem adauga muzica jocului. Facem click pe scena si selectam butonul Sounds de deasupra paletei
de blocuri si incarcam sunetul din biblioteca de sunete.

Adaugam muzica jocului. Dam click pe scena si selecteaza butonul Sounds de deasupra paletei de
blocuri si incarcam sunetul eggs din bibliteca de sunete.Scriptul de mai jos este adaugat scenei,
sunetul eggs va fi redat in blucla dar se va opri cand blocul stop all incheie jocul.
play sound eggs until done muzica de fundal este repetata intr-o bucla fara sfarsit.
Pentru acest joc se folosesc tasta cursor stanga si dreapta si tasta space. Facem click pe steagul verde
pentru a incepe si a vedea de cate ori lovim liliacul cu bananele inainte ca timpul sa expire.

Scena unde actorii actioneaza si informatia este afisata


Sprite un alt nume pentru actor
un script este un alt nume pentru program sau metoda, un script spune unui actor ce sa faca

108
say hello for 2 secs
then change color by 25
then think hmmmm for 4 sec
then change color by 75
then change size by 200

o secventa sau block este un simplu script sau program executata linie cu linie
instructiunea wait este folosita cand incetineste actiunea astfel incat noi sa putem vedeaori auzi cum
se cuvine cumputerele sunt prea rapide pentru ochiul uman

109
bifam x position si y position si tragem de actorul pisica pe scena siputemobserva x si y pozitie

110
111
repetam de 20 de ori
say hello for 2 secs apoi creste cu 10 mai mare apoi revine la normal
utlizam o bucla loop pentru a face parrot papagalul sa bata din aripi sa zboare

112
113
ca papagalul sa bata din aripi setam x la un numar aleatoriu setam y la un numar aleatoriu

114
utilizarea meniului sensing
intreba utlizatorul ce varsta are, utilizatorul scrie varsta, rezultatul este stocat in variabila answer

115
116
putem folosi joint text si un numar pentru a spune lucruri.

calculam c- a*b
facem 3 variabile a,b,c ..dam valori lui a si b
setam valoarea lui c ca inmultirea lui a cu b
sa calculam acum media aritmetica a lui a si b

117
sa calculam permetrul unui dreptnghi l=10, L=15
P=(l+L)*2

118
119
scriptul face ca pisica sa sara de 4 ori in sus si in jos.

120
chat bot raspunde ce nume frumos de fiecare data facand use de raspunsul utilizatorlui. Sa schimbam
codul chatbot-ului.

121
sa stocam raspunsul intr-o variabila name si o vom putea utiliza de-a lungul proiectului.

122
sa programam chatbotul sa decida ce sa faca bazat pe raspunsurile utilizatorului.

123
luarea deciziei putem sa programam chat botul sa ia o decizie bazata pe raspunsul utilizatorului.
Chatbotul pune o intrebare care are raspuns negativ su pozitiv. instructiuni decizionale if-then-else
daca raspunsul este pozitiv intra pe prima ramura si se afiseaza that is great to hear.
un bloc if include o conditie si daca codul din interiorul blocului if ruleaza doar daca conditia este
adevarata. Daca conditia este falsa atunci codul din interiorul if-ului este sarit nu se mai executa si
iese din if.

124
if then else blocul va rula mereu daca conditia este adevarata atunci primul set de blocuri va rula,
daca conditia este falsa, atunci va rula al doilea set de block-uri.

125
am utilizat 3 costume ca parte a chatbot raspuns.

126
Programam chatbotul sa schimbe locatia. Click Backdrops tab vedemca scena are 2 Backdrop-uri. Add
another backdrop scenei noastre daca vedem doar una. trebuie sa fim siguri ca chatbotul nostru se
afla in locatia originala outside cand incepem sa vorbim cu el. Daca raspundem yes cand suntem
intrbati daca vrem sa mergem la biblioteca ar trebui sa vedem ca locatia chatbotului s-a schimbat.

127
128
guessing game un numar intre 1 si 100 este ales in mod aleator si utilizatorul trebuie sa incerce sa
aleaga un numar.

129
130
putem crea de asemenea, un quiz care pune intrebari si verifica atunci cand utilizatorii raspund
corect. Un punct este adaugat scorului jucatorului daca raspund corect.

131
aici folosim mouse-ul pentru a desena pe scena. hide ascunda sprite-ul care va urmari mouse ointer
si doar pen deseneaza daca butonul mouse-ului este apasat.

Bibliografie:
1) CAROL VORDERMAN Computer Coding for Kids : A unique step-by-step visual
guide, from binary code to building games
2) Raluca Elena MATEI, Mircea Tiberiu MATEI, Mara Sandra MATEI Introducere în
Scratch
3) Ghid de programare pentru începători - Writers: Rik Cross, Tracy Gardner -Simple
coding for total beginners book of Scratch volume I
4) JON WOODCOC - Coding games in Scratch 2016
5) Introduction to Computer Science with Scratch Professor David Malan, Harvard
University
6) Learn to Program with Scratch a Visual Introduction to Programming with games, art,
Science, and Math by Majed Marji
7) Scratch by Example Programming for All Ages - Eduardo A. Vlieg
8) Coding for kids-Stuart Andrews, Andrew Dixon
9) Scratch for kids for dummies by Derek Breen
10) Scratch programming for teens Jerry Lee Ford jr

132

S-ar putea să vă placă și