Mediu de programare vizuală – inițiere
Utilizarea unui mediu vizual de programare (ex. Scratch) pentru crearea de proiecte interactive simple.
Ce este programarea vizuală și interfața mediului
Într-un mediu de programare vizuală — cel mai cunoscut este Scratch — programele nu se tastează, ci se construiesc din blocuri colorate care se îmbină ca piesele de puzzle. Forma blocurilor împiedică îmbinările fără sens, așa că poți te concentra pe logica programului, nu pe reguli de scriere.
Interfața Scratch are patru zone pe care trebuie să le recunoști:
- scena (stage) – „ecranul” din dreapta-sus, unde se vede rezultatul: aici se mișcă personajele;
- paleta de blocuri – în stânga, cu blocurile grupate pe categorii colorate: Mișcare (albastru), Aspect (mov), Sunet (roz), Evenimente (galben), Control (portocaliu), Detectare, Operatori, Variabile;
- zona de scripturi – la mijloc; aici tragi blocurile și le îmbini în scripturi (programe);
- lista de sprite-uri – dreapta-jos, cu toate personajele proiectului.
Scena este un plan cu coordonate: orizontal x de la -240 la 240, vertical y de la -180 la 180; centrul scenei este punctul (0, 0). Un sprite la x negativ e în stânga centrului, la y negativ — sub centru.
Proiectul pornește de obicei cu steagul verde și se oprește cu butonul roșu. Chiar dacă blocurile sunt prietenoase, conceptele sunt exact cele de la algoritmi: secvență, decizie, repetiție — programarea vizuală este aceeași programare, doar ambalată altfel.
Sprite-uri, costume și decoruri
Sprite-ul este un personaj sau obiect de pe scenă: pisica din proiectele Scratch, o minge, un buton. Fiecare sprite are propriile scripturi, propriile costume și propriile sunete — iar aceasta e prima regulă de organizare a unui proiect: fiecare sprite își are programele lui; un script scris la pisică nu mișcă mingea.
Costumul este o înfățișare a sprite-ului. Un sprite poate avea mai multe costume, iar schimbarea lor rapidă creează animația — exact ca într-un desen animat: pisica cu picioarele în două poziții diferite, alternate cu blocul „costumul următor”, pare că merge.
Decorul (backdrop) este imaginea de fundal a scenei: o pădure, o clasă, spațiul cosmic. Scena poate avea mai multe decoruri, iar schimbarea lor marchează trecerea între „nivelurile” sau „locurile” poveștii.
Confuzia standard între cele trei: costumul aparține sprite-ului, decorul aparține scenei. Schimbi costumul ca să transformi personajul (alt aspect, altă poziție), schimbi decorul ca să transformi locul acțiunii. Iar ștergerea unui sprite îi șterge și scripturile — dacă vrei doar să-l ascunzi temporar, folosești blocul „ascunde-te”, nu ștergerea; blocul „arată-te” îl readuce vizibil. Fiecare sprite mai are și proprietăți: poziția (x, y), direcția (90 = spre dreapta), mărimea (în procente) și starea vizibil/ascuns.
Evenimente și instrucțiuni de bază
Proiectele Scratch sunt conduse de evenimente: fiecare script pornește doar când se întâmplă ceva anume. Blocurile de evenimente (galbene, rotunjite sus — de aceea stau doar primul bloc al unui script) includ:
- când se dă clic pe steagul verde – pornirea clasică a proiectului;
- când se apasă o tastă (spațiu, săgeți) – pentru controlul din tastatură;
- când se dă clic pe acest sprite;
- când primesc un mesaj – sprite-urile își pot trimite mesaje unul altuia; mesajul difuzat de un sprite pornește scripturile care îl așteaptă la celelalte — așa se coordonează scenele unei povești.
Un script fără bloc de eveniment deasupra nu pornește niciodată singur — cea mai frecventă nedumerire a începătorului („de ce nu face nimic?”) are de obicei acest răspuns.
Instrucțiunile de bază, pe categorii:
- Mișcare: „mergi 10 pași”, „rotește-te 15 grade”, „mergi la x…, y…”, „întoarce-te dacă atingi marginea”;
- Aspect: „spune Salut! 2 secunde” (balon de vorbire), „schimbă costumul”, „mărește/micșorează”, „arată-te/ascunde-te”;
- Sunet: „cântă sunetul…”, „oprește toate sunetele”.
Detaliu care încurcă des: „mergi 10 pași” nu înseamnă 10 pași de pisică, ci 10 unități pe direcția curentă a sprite-ului; dacă sprite-ul e întors spre stânga, el „merge” spre stânga.
Structurile de control în blocuri
Structurile învățate la algoritmi există toate în Scratch, în categoria Control (portocalie):
- secvența – blocurile îmbinate unul sub altul se execută de sus în jos, în ordine;
- repetiția cu număr cunoscut – blocul „repetă de 10 ori” este echivalentul structurii pentru;
- repetiția nesfârșită – blocul „la nesfârșit” repetă conținutul cât rulează proiectul; util pentru verificări continue (jocuri), dar tot ce pui după el nu se mai execută niciodată;
- repetiția condiționată – „repetă până când <condiție>” este ruda lui repetă–până când din pseudocod;
- decizia – blocurile „dacă <condiție> atunci” și „dacă … atunci … altfel”;
- așteptarea – „așteaptă 1 secundă” sau „așteaptă până când <condiție>”.
Condițiile se construiesc din blocuri hexagonale: din categoria Detectare („atinge sprite-ul…?”, „se apasă tasta…?”, „atinge culoarea…?”) și din Operatori (comparări <, =, >, operatorii logici și, sau, nu). Forma contează: în golul hexagonal al unui bloc „dacă” intră doar blocuri hexagonale — de aceea nu poți pune din greșeală un număr pe post de condiție.
Tot aici apar variabilele: din categoria Variabile creezi de exemplu scor, iar blocurile „modifică scor cu 1” și „setează scor la 0” fac exact ce spun. Diferența dintre ele e clasica greșeală de începător: „setează” înlocuiește valoarea, „modifică” adaugă la valoarea existentă — un joc care folosește „setează scor la 1” la fiecare punct rămâne veșnic cu scorul 1.
Un proiect simplu și depanarea lui
Rețeta unui joc simplu de prins — pisica urmărită de utilizator cu mouse-ul — arată cum se leagă toate conceptele:
- scriptul pisicii: când se dă clic pe steagul verde → setează scor la 0 → la nesfârșit: mergi la o poziție aleatoare, așteaptă 1 secundă;
- al doilea script al pisicii: când se dă clic pe acest sprite → modifică scor cu 1 → cântă un sunet.
Două scripturi, un eveniment fiecare, o variabilă, o buclă — și jocul funcționează. Îmbunătățiri firești: un cronometru, un decor nou când scorul trece de 10 (mesaj difuzat + „când primesc mesajul… schimbă decorul”), costume alternate pentru animație.
Depanarea (debugging) înseamnă găsirea și repararea greșelilor din proiect. Pași concreți, în ordinea în care merită încercați:
- proiectul nu pornește deloc → verifică dacă scripturile au bloc de eveniment deasupra;
- sprite-ul nu se vede → poate fi ascuns (adaugă „arată-te” la pornire) sau a rămas în afara scenei (adaugă „mergi la x:0 y:0”);
- se mișcă în direcția greșită → verifică direcția sprite-ului, nu doar blocul de mers;
- scorul crește ciudat → cauți confuzia „setează/modifică”;
- se întâmplă totul „prea repede” → lipsesc blocurile de așteptare din bucle.
Metoda generală: testează des, după fiecare bloc adăugat, nu abia la final; și izolează problema — rulează scripturile pe rând ca să afli care dintre ele greșește. Sunt aceleași deprinderi pe care le vei folosi mai târziu în orice limbaj de programare cu text.
De reținut
- mediu de programare vizuală
- mediu în care programele se construiesc din blocuri grafice îmbinate ca un puzzle, nu prin tastarea de cod (ex. Scratch)
- sprite
- personaj sau obiect de pe scenă, cu propriile scripturi, costume și sunete
- scenă (stage)
- zona în care se desfășoară acțiunea proiectului, cu coordonate x de la -240 la 240 și y de la -180 la 180, centrul fiind (0, 0)
- costum
- o înfățișare a unui sprite; alternarea costumelor creează animația
- decor (backdrop)
- imaginea de fundal a scenei; schimbarea decorului marchează schimbarea locului acțiunii
- script
- grup de blocuri îmbinate care descriu un program; pornește doar la producerea evenimentului din blocul său de start
- eveniment
- întâmplarea care declanșează execuția unui script: clic pe steagul verde, apăsarea unei taste, primirea unui mesaj
- mesaj difuzat
- semnal trimis de un sprite către toate celelalte, folosit pentru coordonarea scripturilor între sprite-uri
- depanare (debugging)
- procesul de găsire și corectare a greșelilor dintr-un proiect, prin testare frecventă și izolarea problemei
Greșeli frecvente
Greșit: Script lăsat fără bloc de eveniment deasupra, apoi mirarea că „nu face nimic”
Corect: Orice script pornește doar printr-un eveniment: clic pe steagul verde, apăsarea unei taste sau primirea unui mesaj
Greșit: Confundarea blocului „setează variabila la…” cu „modifică variabila cu…”
Corect: Setează înlocuiește valoarea; modifică adaugă la valoarea existentă — pentru un scor care crește se folosește modifică
Greșit: Confundarea costumului cu decorul
Corect: Costumul este înfățișarea unui sprite; decorul este fundalul scenei — schimbi costumul pentru personaj, decorul pentru locul acțiunii
Greșit: Ștergerea sprite-ului când se dorea doar dispariția lui temporară
Corect: Ștergerea elimină și scripturile sprite-ului; pentru dispariție temporară se folosesc blocurile ascunde-te și arată-te
Greșit: Plasarea de blocuri după blocul „la nesfârșit”
Corect: Bucla la nesfârșit nu se termină, deci blocurile de sub ea nu se execută niciodată; codul de final se pune în alt script sau se folosește repetă până când
Test — 6 întrebări ca la examen
1. În Scratch, personajul sau obiectul care acționează pe scenă se numește:
- decor
- sprite
- script
- costum
Vezi răspunsul
sprite. Sprite-ul este personajul, cu propriile scripturi și costume. Costumul — distractorul apropiat — este doar o înfățișare a sprite-ului, iar decorul este fundalul scenei, nu un personaj.
2. Punctul de coordonate (0, 0) de pe scena Scratch se află:
- în colțul din stânga-sus
- în colțul din stânga-jos
- în centrul scenei
- în colțul din dreapta-jos
Vezi răspunsul
în centrul scenei. Scena Scratch are originea în centru: x merge de la -240 la 240, y de la -180 la 180. Colțul stânga-sus e capcana pentru cei obișnuiți cu ecranele obișnuite, unde numerotarea pixelilor pornește din colț.
3. Un script construit corect nu pornește niciodată. Cea mai probabilă cauză este:
- are prea multe blocuri de mișcare
- nu are un bloc de eveniment ca prim bloc
- sprite-ul are prea multe costume
- scena are un singur decor
Vezi răspunsul
nu are un bloc de eveniment ca prim bloc. Scripturile sunt declanșate de evenimente; fără blocul galben de start (steagul verde, o tastă, un mesaj), scriptul nu rulează singur. Numărul de blocuri, costume sau decoruri nu împiedică pornirea.
4. Pentru ca pisica să pară că merge, alternând două înfățișări, folosești:
- schimbarea decorului
- schimbarea costumului
- ștergerea și readăugarea sprite-ului
- mărirea sprite-ului
Vezi răspunsul
schimbarea costumului. Animația se obține prin alternarea costumelor sprite-ului, ca la desenele animate. Schimbarea decorului — confuzia clasică — modifică fundalul scenei, nu înfățișarea personajului.
5. Într-un joc, scorul trebuie să crească cu 1 la fiecare punct câștigat. Ce bloc folosești?
- setează scor la 1
- modifică scor cu 1
- setează scor la 0
- difuzează mesajul scor
Vezi răspunsul
modifică scor cu 1. Modifică adaugă 1 la valoarea existentă, deci scorul urcă: 1, 2, 3… Setează scor la 1 — capcana tipică — înlocuiește valoarea de fiecare dată, iar scorul rămâne veșnic 1.
6. Echivalentul structurii repetitive cu număr cunoscut de pași din pseudocod este, în Scratch, blocul:
- la nesfârșit
- repetă de 10 ori
- așteaptă 10 secunde
- dacă… atunci… altfel
Vezi răspunsul
repetă de 10 ori. Repetă de 10 ori execută conținutul de un număr dinainte cunoscut de ori, exact ca structura pentru. La nesfârșit — distractorul din aceeași categorie — nu se oprește niciodată, iar dacă–atunci–altfel este decizie, nu repetiție.
Deschide varianta interactivă — cu AI care îți explică