Sari la conținut
EduCamp
Alice 3MediuAlice 3 de la zero · partea 6

Decizii, repetări, funcții și expresii

Mișcările se calculează din distanțe și înălțimi, cu funcții și expresii matematice. Programul ia decizii cu if, repetă cu count și while și ține minte valori în variabile.

50 minuteNivel: MediuEduCamp

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

Ai nevoie de:

  • Un proiect cu Alien, Ogre, o piatră (RiverRock) și un copac (PineTree)

1. Funcțiile

O funcție calculează o valoare și o dă înapoi, fără să miște nimic. Funcțiile unui obiect sunt în fila Functions, din panoul din stânga jos. Cele folosite des sunt:

  • getDistanceTo: distanța, în metri, până la alt obiect;
  • getHeight, getWidth, getDepth: dimensiunile obiectului;
  • isCollidingWith: adevărat când obiectul se atinge de altul;
  • isFacing: adevărat când obiectul are fața spre altul.

Funcția se trage în locul unei valori dintr-o plăcuță. Mai jos, personajul sare cât este de înalt:

this.alien move UP, this.alien getHeight
this.alien move DOWN, this.alien getHeight

2. Expresiile matematice

Într-o valoare se poate scrie o expresie: un calcul cu numere și funcții. Expresia se alege cu clic pe valoare, apoi Math, unde sunt operațiile +, -, * și /.

Personajul merge până la piatră și se oprește cu un metru înainte, oricât de departe ar fi piatra:

this.alien turnToFace this.riverRock
this.alien move FORWARD, (this.alien getDistanceTo this.riverRock) - 1.0

3. Decizia: if

Structura if verifică o condiție și execută una dintre cele două ramuri: prima, când condiția este adevărată, a doua, else, când este falsă. Condiția de comparare se alege cu clic pe true, apoi Relational, unde sunt <, >, == și celelalte.

if (this.alien getDistanceTo this.ogre) < 2.0 is true then
this.alien say "Ești aproape."
else
this.alien say "Ești departe."

4. Repetarea: count și while

  • count repetă instrucțiunile de un număr cunoscut de ori;
  • while repetă instrucțiunile cât timp o condiție este adevărată; numărul de repetări nu se știe dinainte.

Personajul înaintează cu pași mici cât timp este la mai mult de un metru de copac:

while (this.alien getDistanceTo this.pineTree) > 1.0 is true
this.alien move FORWARD, 0.25, duration: 0.25
this.alien say "Am ajuns la copac."

5. Variabilele

O variabilă păstrează o valoare cu un nume. Se creează cu plăcuța variable… din bara de sub editor, unde se aleg tipul, numele și valoarea de pornire. Valoarea se schimbă cu plăcuța assign.

Variabila pasi numără pașii făcuți până la copac:

WholeNumber pasi ← 0
while (this.alien getDistanceTo this.pineTree) > 1.0 is true
this.alien move FORWARD, 0.25, duration: 0.25
pasi ← pasi + 1
this.alien say "Am făcut " + pasi + " pași."

Exerciții

🔑 Rezolvare
do together
this.alien turnToFace this.ogre
this.ogre turnToFace this.alien
do together
this.alien move FORWARD, (this.alien getDistanceTo this.ogre) / 2 - 0.5
this.ogre move FORWARD, (this.ogre getDistanceTo this.alien) / 2 - 0.5

Distanța se măsoară între centrele personajelor. Cu jumătatea întreagă, centrele lor ar ajunge în același punct și personajele ar intra unul în altul; scăderea a 0.5 lasă un metru între ele.

🔑 Rezolvare
if (this.ogre getDistanceTo this.alien) < 3.0 is true then
this.ogre turnToFace this.alien
this.ogre say "Stai!"
else
this.ogre say "Totul e liniștit."
🔑 Rezolvare
  • sare de 5 ori: count, pentru că numărul de repetări se știe dinainte;
  • înaintează până atinge piatra: while, cu condiția „nu se atinge de piatră”;
  • se rotește până ajunge cu fața spre copac: while, cu condiția „nu este cu fața spre copac”. Aceeași mișcare se face direct cu turnToFace.

Ce ai învățat

La finalul fișei, poți:

  • să folosești funcțiile unui obiect: distanța, dimensiunile, atingerea;
  • să calculezi mișcările cu expresii matematice în care intră funcții;
  • să iei decizii cu if și else;
  • să repeți instrucțiuni cu count și cu while;
  • să creezi o variabilă și să-i schimbi valoarea cu assign.
Autor: EduCampActualizat: 4 octombrie 2026