Sari la conținut
EduCamp
ScratchÎncepătorScratch de la zero · partea 4

Decizii: dacă personajul atinge

Scripturile iau decizii cu „dacă … atunci” și „dacă … atunci … altfel”: personajul culege obiecte, se oprește la pereți și răspunde la poziția lui pe scenă.

50 minuteNivel: ÎncepătorEduCamp

Nume și prenume: ................................................    Clasa: .................    Data: .......................

Ai nevoie de:

  • Un calculator cu acces la internet
  • Editorul Scratch, pe scratch.mit.edu

1. Condițiile

O condiție este un bloc cu marginile ascuțite, care are valoarea adevărat sau fals. Condițiile se pun în blocurile „dacă”, „așteaptă până când” și „repetă până când”.

Condițiile folosite cel mai des în jocuri sunt în categoria Detectare:

  • „atinge …?”: adevărat când personajul atinge alt personaj, marginea scenei sau cursorul mouse-ului;
  • „atinge culoarea …?”: adevărat când personajul atinge culoarea aleasă;
  • „tasta … apăsată?”: adevărat cât timp tasta este apăsată.

2. Culegerea unui obiect

Adaugă în proiect personajul Apple, din biblioteca de personaje, categoria Mâncare. Pisica se deplasează cu săgețile, ca în fișa a doua. Mărul are scriptul lui:

Când pisica atinge mărul, se aude un sunet, iar mărul apare în alt loc de pe scenă.

când se dă click pe @greenFlag
mergi la [poziție aleatoare v]
la infinit
  dacă <atinge [Sprite1 v]?> atunci
    pornește sunetul [Chomp v]
    mergi la [poziție aleatoare v]
  end
end

3. Dacă … atunci … altfel

Blocul dacă … atunci … altfel are două ramuri:

  • blocurile din prima ramură se execută când condiția este adevărată;
  • blocurile din ramura „altfel” se execută când condiția este falsă.

Condiția de mai jos folosește operatorul „>” din categoria Operatori și valoarea „poziția x” din categoria Mișcare:

când se dă click pe acest personaj
dacă <(poziția x) > [0]> atunci
  spune [Sunt în dreapta scenei.] pentru (2) secunde
altfel
  spune [Sunt în stânga scenei.] pentru (2) secunde
end

4. Pereții

Un perete se desenează în decor cu o culoare care nu mai apare în altă parte, de exemplu negru. Condiția „atinge culoarea” verifică dacă personajul a ajuns la perete:

Personajul face pasul, iar dacă a ajuns în perete, face imediat pasul înapoi. Pe scenă se vede numai că s-a oprit la perete.

când se dă click pe @greenFlag
mergi la x (-200) y: (0)
la infinit
  dacă <tasta [săgeată dreapta v] apăsată?> atunci
    modifică x cu (5)
    dacă <atinge culoarea [#000000]?> atunci
      modifică x cu (-5)
    end
  end
end

5. Condiții compuse

Operatorii și, sau, nu, din categoria Operatori, leagă mai multe condiții:

  • „… și …”: adevărat când ambele condiții sunt adevărate;
  • „… sau …”: adevărat când cel puțin una este adevărată;
  • „nu …”: adevărat când condiția este falsă.
dacă <<atinge [Apple v]?> și <tasta [spațiu v] apăsată?>> atunci
  spune [L-am prins!] pentru (1) secunde
end

Exerciții

🔑 Rezolvare
când se dă click pe @greenFlag
la infinit
  dacă <atinge [Apple v]?> atunci
    spune [Mmm!] pentru (0.5) secunde
  end
end
🔑 Rezolvare
când se dă click pe @greenFlag
mergi la x (0) y: (0)
la infinit
  dacă <tasta [săgeată dreapta v] apăsată?> atunci
    modifică x cu (5)
  end
  dacă <tasta [săgeată stânga v] apăsată?> atunci
    modifică x cu (-5)
  end
  dacă <atinge [marginea v]?> atunci
    mergi la x (0) y: (0)
    spune [Ai ieșit!] pentru (1) secunde
  end
end
🔑 Rezolvare

Pentru fiecare direcție, pasul înapoi este pasul cu semnul schimbat:

când se dă click pe @greenFlag
mergi la x (-200) y: (-150)
setează mărimea la (30) %
la infinit
  dacă <tasta [săgeată dreapta v] apăsată?> atunci
    modifică x cu (3)
    dacă <atinge culoarea [#000000]?> atunci
      modifică x cu (-3)
    end
  end
  dacă <tasta [săgeată stânga v] apăsată?> atunci
    modifică x cu (-3)
    dacă <atinge culoarea [#000000]?> atunci
      modifică x cu (3)
    end
  end
  dacă <tasta [săgeată în sus v] apăsată?> atunci
    modifică y cu (3)
    dacă <atinge culoarea [#000000]?> atunci
      modifică y cu (-3)
    end
  end
  dacă <tasta [săgeată jos v] apăsată?> atunci
    modifică y cu (-3)
    dacă <atinge culoarea [#000000]?> atunci
      modifică y cu (3)
    end
  end
  dacă <atinge culoarea [#00ff00]?> atunci
    spune [Am ieșit!] pentru (2) secunde
  end
end

Personajul se micșorează la 30%, ca să încapă pe culoarele labirintului.

🔑 Rezolvare
  • Prima: falsă. Niciuna dintre cele două condiții nu este adevărată.
  • A doua: adevărată. Pisica nu atinge mărul, iar „nu” schimbă fals în adevărat.
  • A treia: adevărată. Pisica este în centru, deci poziția x este 0, iar tasta spațiu nu este apăsată.

Ce ai învățat

La finalul fișei, poți:

  • să folosești condițiile „atinge …?”, „atinge culoarea …?” și „tasta … apăsată?”;
  • să construiești decizii cu „dacă … atunci” și „dacă … atunci … altfel”;
  • să oprești un personaj la pereții desenați în decor;
  • să legi condițiile cu „și”, „sau”, „nu”.
Autor: EduCampActualizat: 4 octombrie 2026