În lucru: lecțiile se refac de la capăt. Lecțiile noi ale clasei: lecțiile noi ale clasei a V-a →
Invatare Atomica

Decizii Complexe si Jocuri in Scratch

Nota programa (OMEN 3393/2017, cls. V): Continutul de baza al lectiei (structura alternativa in mediu grafic, competenta V-2.4) face parte din programa obligatorie. Atomii de mai jos — blocurile si / sau / nu (combinare de conditii) si variabilele cu sistem de scor — merg dincolo de nivelul minim si reprezinta continut de aprofundare, destinat activitatilor diferentiate sau elevilor avansati.
Progres lectie:
0%
🎯

Obiectivul lectiei

Transforma programele simple in jocuri captivante!

Dupa aceasta lectie vei putea:

  • Sa folosesti blocurile si / sau / nu pentru a combina conditii in structura alternativa
  • Sa creezi si sa folosesti variabile (scor, vieti) intr-un joc Scratch

Incearca singur!

🚀 Provocare: Joc simplu de prinse

Creeaza un joc in care un sprite cade de sus, iar jucatorul il prinde cu un cos (controlat cu sagetile). +1 punct pentru fiecare prindere!

Pasi de urmat:

  1. Creeaza variabila "scor" - Variables → Make a Variable
  2. Sprite 1: Obiect cazator - Seteaza-l la y: 150 (sus), apoi la infinit: mergi la x: aleator, y: 150, gliseaza in 2 sec la y: -150
  3. Sprite 2: Cosul jucatorului - Seteaza-l la y: -130 (jos)
  4. Cos: Control cu sageti - Daca sageata stanga: x-10, daca sageata dreapta: x+10
  5. Obiect: Detectie prindere - Daca atinge cos: scor+1, resetare pozitie sus
  6. Test - Joaca si vezi daca scorul creste la fiecare prindere
💡 Cod pentru obiectul cazator:
cand se da click pe 🚩 seteaza (scor) la (0) la infinit mergi la x: (aleator intre -200 si 200) y: (150) gliseaza in (2) sec la x: (pozitia x) y: (-150) daca <atingi (Cos)?> atunci schimba (scor) cu (1) mergi la x: (aleator intre -200 si 200) y: (150)
💡 Cod pentru cos (jucator):
cand se da click pe 🚩 mergi la x: (0) y: (-130) la infinit daca <tasta (sageata stanga) apasata?> atunci schimba x cu (-10) daca <tasta (sageata dreapta) apasata?> atunci schimba x cu (10)
🎨 Deschide Scratch Online →
💡 Indiciu 1: Cum creez o variabila?

Mergi la categoria Variables (blocuri portocalii). Apasa butonul "Make a Variable", da-i numele "scor" si bifeaza "For all sprites" ca sa fie valabila pentru toate personajele.

💡 Indiciu 2: Cum fac obiectul sa cada?

Foloseste blocul "gliseaza in [2] sec la x: y:" din categoria Motion. Pune y: 150 (sus) la inceput, apoi gliseaza la y: -150 (jos). Asta creeaza efectul de cadere.

💡 Indiciu 3: Cum detectez prinderea?

In codul obiectului cazator, pune un bloc "daca <atingi (Cos)?> atunci". In interior: "schimba (scor) cu (1)" si resetarea pozitiei la y: 150.

🎯 Provocare bonus

Fa jocul mai greu: adauga o a doua variabila "viteza" care incepe de la 2 si scade cu 0.1 la fiecare prindere (jocul devine mai rapid!). Foloseste (viteza) in loc de 2 in blocul gliseaza.

1

1. Conditii compuse in Scratch (si / sau / nu)

1

Conditii compuse in Scratch: si / sau / nu

La clasa a V-a invatam structura alternativa (decizia): programul alege ce face in functie de o conditie. In Scratch, blocul daca ... atunci foloseste o conditie. Uneori avem nevoie sa verificam doua lucruri deodata. Scratch pune la dispozitie trei blocuri speciale (categoria Operators, culoare verde) care combina conditii simple intr-o singura conditie:

Cele 3 blocuri de combinare a conditiilor:

<conditie1> si <conditie2> <conditie1> sau <conditie2> nu <conditie>
Bloc Scratch Cand e adevarat? Exemplu din viata reala
si Doar cand AMBELE conditii sunt adevarate Poti conduce DACA ai 18 ani SI ai permis
sau Cand cel putin UNA e adevarata Poti intra gratis DACA ai sub 6 ani SAU esti profesor
nu Inverseaza conditia (adevarat devine fals si invers) NU ploua = poti merge la picnic
🎮 Cum apar in jocuri Scratch

si: "Spune 'Ai castigat!' DACA scorul e mai mare decat 100 SI mai ai vieti"

sau: "Jocul se termina DACA atingi un inamic SAU cazi in groapa"

nu: "Continua sa mergi DACA NU atingi marginea scenei"

Exemplu complet: Verifica daca jucatorul castiga

daca << (scor) > (100) > si < (vieti) > (0) >> atunci spune [Ai castigat! Felicitari!] pentru (3) secunde opreste (tot)

Jucatorul castiga DOAR daca are scor peste 100 SI inca are vieti ramase. Daca lipseste una din conditii, mesajul nu apare.

Greseala frecventa

Multa lume confunda si cu sau. Retine: si e mai restrictiv (ambele trebuie sa fie adevarate), sau e mai permisiv (una singura e de ajuns).

2

2. Variabile in Scratch

2

Variabile in Scratch

O variabila e ca o cutie cu eticheta in care poti pastra un numar sau text. Poti schimba ce e in cutie oricand vrei. In jocuri, folosim variabile pentru scor, vieti, timp, nivel, etc.

📦 Analogie cu cutiile

Imaginati-va o cutie cu eticheta "SCOR". La inceput pui 0 in ea. Cand jucatorul prinde o moneda, scoti 0, adaugi 1 si pui 1 inapoi in cutie. Data viitoare scoti 1, adaugi 1 si pui 2. Cutia pastreaza mereu valoarea curenta — asta face o variabila.

Cum creezi si folosesti o variabila in Scratch

  1. Mergi la categoria Variables (blocuri portocalii).
  2. Apasa Make a Variable, scrie numele (ex: scor) si bifeaza For all sprites.
  3. Variabila apare automat pe scena si poti folosi blocurile ei:
seteaza (scor) la (0) schimba (scor) cu (1) arata variabila (scor)

seteaza = pune o valoare precisa in cutie (de obicei la inceputul jocului).
schimba cu = adauga la valoarea existenta (de obicei la fiecare eveniment).

Exemplu complet: scor intr-un joc de prins
cand se da click pe 🚩 seteaza (scor) la (0) la infinit daca <atingi (Cos)?> atunci schimba (scor) cu (1) mergi la x: (aleator intre -200 si 200) y: (150)

La fiecare atingere a cosului, scorul creste cu 1 si obiectul se reseteaza sus.

Exercitii practice

Exercitiul 1 (Nivel minim) - Variabila scor simplu

Exercitiul 1: Aplicare directa
Creaza o variabila scor si afis-o pe ecran

In Scratch, creeaza o variabila numita scor (Variables → Make a Variable). Seteaz-o la 0 la inceputul jocului. Adauga un sprite (orice animal sau obiect din biblioteca). Cand dai click pe sprite, scorul creste cu 1. Verifica pe ecran ca valoarea creste la fiecare click. Aceasta este structura de baza a oricarui joc cu scor.

Vezi rezolvarea

Rezolvare pas cu pas:

  1. In categoria Variables apasa Make a Variable, numeste-o scor, bifeaza For all sprites.
  2. Pe sprite: la cand se da click pe steag pune seteaza (scor) la (0).
  3. Pe acelasi sprite adauga un al doilea script care porneste cand se apasa pe acest sprite (categoria Events, galbena, sub blocul cu steagul) si contine schimba (scor) cu (1).
  4. Ruleaza cu steagul verde, apoi da click de mai multe ori pe sprite si urmareste afisajul scor de pe scena: trebuie sa creasca 1, 2, 3...

Atentie: lectia a predat explicit doar evenimentul cand se da click pe steag; cand se apasa pe acest sprite e tot din categoria Events, il gasesti direct sub el in paleta, dar exact acest bloc nu a fost aratat in lectie.

Exercitiul 2 (Nivel standard) - Sistem de vieti

Exercitiul 2: Practic
Sistem de vieti

Implementeaza un sistem de 3 vieti. Jucatorul pierde o viata cand atinge un obstacol rosu. Cand vieti = 0, afiseaza "Game Over" si opreste jocul. Testeaza ca functioneaza corect.

Vezi rezolvarea

Rezolvare pas cu pas:

  1. In categoria Variables creeaza variabila vieti. La cand se da click pe steag: seteaza (vieti) la (3).
  2. Pe sprite-ul jucator, in bucla la infinit: daca <atingi (Obstacol)?> atunci si inauntru schimba (vieti) cu (-1) (scade o viata la fiecare atingere).
  3. Tot in bucla adauga al doilea daca: daca <(vieti) = (0)> atunci, iar inauntru spune [Game Over] pentru (2) secunde urmat de opreste (tot).
  4. Testeaza: atinge obstacolul de 3 ori; la a treia oara trebuie sa apara "Game Over" si tot jocul sa inghete (nimic nu mai misca).

Obstacolul "rosu" e un sprite normal numit Obstacol, colorat rosu din editorul de costume - lectia n-a predat detectarea prin culoare (atingi culoarea), doar detectarea prin nume de sprite (atingi (Nume)?), asa ca foloseste-o pe aceasta.

Exercitiul 3 (Nivel performanta) - Analiza conditii compuse

Exercitiul 3: Analitic
Analizeaza conditii combinate

Explica diferenta dintre: A) <(scor) > (50) SI (vieti) > (0)> si B) <(scor) > (50) SAU (vieti) > (0)>. Da un exemplu cand A e TRUE dar B e FALSE (sau invers).

Vezi rezolvarea

Schita de rezolvare (nu e raspunsul gata facut - il completezi tu):

  1. Reaminteste definitiile: SI e adevarat doar cand AMBELE conditii sunt adevarate; SAU e adevarat cand CEL PUTIN UNA e adevarata.
  2. Alege valori concrete pentru scor si vieti si calculeaza separat fiecare bucata (scor > 50? vieti > 0?) inainte sa le combini.
  3. Cauta intai cazul "A fals, B adevarat" - e mai usor de gasit: incearca un scor mare, dar vieti = 0.
  4. Apoi intreaba-te: poate exista vreodata "A adevarat SI B fals" in acelasi timp? Gandeste ce inseamna ca ambele conditii din A sunt deja adevarate, pentru SAU.

Criterii de evaluare: (1) definitii corecte SI/SAU; (2) exemplu numeric verificat prin calcul, nu doar afirmat; (3) discuta explicit daca "A adevarat, B fals" e posibil sau nu, cu motivul logic din spate - aici se vede diferenta intre nota de trecere si nota maxima.

Ce ai invatat astazi

  • Blocurile si / sau / nu din Scratch (categoria Operators) permit combinarea conditiilor in structura alternativa
  • Variabilele pastreaza informatii importante (scor, vieti, timp)
  • Un joc bun are mecanici clare: scor, castig, pierdere
  • Detectarea coliziunilor face jocurile interactive
  • Dificultatea progresiva mentine jocul interesant
  • Combinarea tuturor conceptelor creeaza jocuri captivante

Vrei mai mult?

Provocare: Construieste conditia de final de joc folosind SAU: daca (vieti) = (0) SAU (timp) = (0) atunci opreste tot. Testeaza ambele cazuri separat (ajunge vietile la 0 SAU timpul la 0) si verifica ca jocul se opreste in fiecare caz, nu doar in unul.

  • De ce? La blocurile si/sau, ordinea conditiilor nu conteaza: A si B da acelasi rezultat ca B si A. Dar la blocul schimba (scor) cu, ordinea in care aduni scorurile conteaza pentru rezultatul final? Ce alte operatii matematice din Scratch (scadere, impartire) NU se pot inversa fara sa schimbe rezultatul?
  • In lumea reala: Cand cauti pe Google ceva de genul "retete pizza -ananas", motorul de cautare foloseste exact aceeasi logica SI/SAU/NU ca sa filtreze rezultatele - la fel ca blocurile din Scratch care combina conditii.

Urmatoarea lectie

Continua cu lectia urmatoare pentru a aprofunda cunostintele.

Continua →