Programare pentru începători: un robot și blocuri

Alcătuiește un program din blocuri și privește cum îl execută un robot pe o grilă, pas cu pas. Lângă blocuri, același program este scris în Python. Nivelurile te poartă prin secvențe, bucle, condiții, bucle while și funcții.

Noțiune nouă

Un program este o listă de instrucțiuni. Robotul le execută una după alta, de sus în jos, și face exact ce spun ele – nu ghicește nimic. De aceea ordinea contează. Fiecare bloc are alături linia lui de Python: „mergi înainte” este move(), „întoarce-te la stânga” este turn_left().

În Python

move()
move()
turn_left()
move()

Sarcină

Du robotul la steag. Atinge „mergi înainte” în meniul de blocuri: blocul este adăugat la program. Când programul e gata, apasă Rulează.

Indiciu

Numără pătrățelele dintre robot și steag. Fiecare „mergi înainte” duce robotul cu un pătrățel în direcția săgeții verzi.

Harta

Construiește un program și apasă Rulează.

Program din blocuri

Blocuri: 0

Meniul de blocuri

Tastatură: blocul nou se inserează după cel selectat; mută blocul selectat cu Alt + săgeată, șterge-l cu Delete; Ctrl + Z anulează ultima modificare.

Același program în Python

Acesta este programul tău ca text. Comenzi precum move() și turn_left() aparțin acestui joc; for, while, if și def sunt Python adevărat.

Încă nu e nimic aici. După ce adaugi blocuri, liniile lor apar aici.

Un joc de învățare; programul și progresul tău rămân în browser. Cum se calculează și de unde provin datele

Ce vei învăța aici

Un program este o listă exactă de instrucțiuni. Un calculator nu ghicește: face exact ce spune programul, chiar și atunci când e limpede că nu are sens. De aceea programarea înseamnă mai ales să împarți o sarcină în pași mici și fără echivoc și să îi pui în ordinea corectă. Aceasta este logica programării și este aceeași în orice limbaj.

Secvența: comenzile se execută una după alta, de sus în jos. Ordinea contează: „mergi înainte, întoarce-te la stânga” duce robotul în alt loc decât „întoarce-te la stânga, mergi înainte”.

Buclele: în loc de șase blocuri „mergi înainte” identice, ajunge un singur bloc „repetă de 6 ori” cu un singur pas înăuntru. În Python este bucla for i in range(6):. Buclele pot fi puse una în alta: de patru ori „fă trei pași și întoarce-te” înconjoară un pătrat.

Condițiile: un bloc „dacă” execută blocurile din el doar când o condiție este adevărată, de pildă „dacă stau pe o monedă, ridic-o”. Un bloc „dacă – altfel” alege între două drumuri. Un program cu condiții funcționează și pe o hartă pe care nu o știi dinainte, de aceea aceste niveluri au mai multe hărți.

Buclele while: un bloc „cât timp” repetă blocurile din el cât timp o condiție este adevărată, de pildă „cât timp drumul din față este liber, mergi înainte”. Spre deosebire de „repetă de N ori”, nu știi dinainte de câte ori se va executa. Dacă condiția nu încetează niciodată să fie adevărată, obții o buclă infinită, una dintre cele mai frecvente greșeli.

Funcțiile: o bucată de program cu nume, pe care o poți folosi iar și iar. După ce ai construit „întoarce-te din drum”, un singur bloc o apelează. Programul devine mai scurt și mai ușor de citit, iar o corectură făcută într-un loc se aplică peste tot.

Depanarea (debugging): orice programator greșește; arta este să găsești greșelile. Rulează programul pas cu pas și urmărește unde face robotul altceva decât te așteptai. Blocul care a provocat eroarea este evidențiat, iar mesajul îți spune ce s-a întâmplat.

De ce blocuri și, alături, Python: cu blocuri nu poți face o greșeală de tastare și nu poți uita o paranteză, așa că te concentrezi doar pe logică. Python-ul de alături arată că este același program scris ca text: blocurile dintr-o buclă sunt indentate în cod, iar linia de deasupra lor se termină cu două puncte.

Mai departe: când robotul nu te mai surprinde, încearcă să scrii singur Python, de exemplu cu tutorialul oficial de pe python.org, care începe cu aceleași for, while, if și def. Dacă preferi să faci jocuri și animații, continuă cu Scratch, care folosește același fel de blocuri.

Întrebări frecvente

De la ce vârstă pot învăța copiii să programeze?

Jocul este gândit pentru copii de vreo zece ani în sus și se potrivește și adulților începători. Copiii mai mici se pot descurca cu primele capitole cu ajutorul unui adult; ajunge să știe să citească. Toate nivelurile sunt deblocate, așa că cine știe bazele poate sări înainte.

Este gratuit și am nevoie de cont?

Este gratuit și fără cont. Browserul îți ține minte progresul, așa că poți reveni la un nivel pe același dispozitiv.

Ce este Python?

Python este unul dintre cele mai folosite limbaje de programare. Este folosit pentru analiza datelor, știință, site-uri web, automatizare și inteligență artificială, iar începătorii îl apreciază pentru că se citește ușor. Programul de lângă blocuri este Python adevărat; doar comenzile robotului, precum move(), țin de acest joc.

Prin ce diferă de Scratch?

Scratch este un teren de joacă deschis, în care construiești din blocuri propriile jocuri și animații cu personaje. Aici rezolvi probleme cu un scop clar, care te poartă pas cu pas prin idei precum buclele, condițiile și funcțiile, iar lângă blocuri vezi același program în Python. Cele două se completează bine.

Ce fac după ce termin toate nivelurile?

Încearcă să scrii singur Python: tutorialul oficial de pe python.org începe cu aceleași if, for, while și def pe care le știi din blocuri. Dacă îți place să creezi, continuă cu Scratch. Și încearcă să rezolvi nivelurile cu mai puține blocuri.

Este programul meu trimis undeva?

Nu. Programul rulează în browserul tău și este salvat doar în spațiul lui de stocare, ca să îl găsești data viitoare. Nu este trimis nicăieri și nimeni altcineva nu îl vede.

Cum se calculează și de unde provin datele

Cum se calculează rezultatul

  1. Un program este făcut din blocuri. Fiecărui bloc îi corespund una sau mai multe linii de Python generate alături, așa că, în timp ce programul rulează, blocul și linia lui se aprind împreună.
  2. Robotul trăiește pe o grilă de cel mult 8 × 8 pătrățele. Un pătrățel este liber, perete, monedă sau țintă cu un steag; marginea grilei este perete. Robotul stă pe un pătrățel și privește într-una din cele patru direcții.
  3. Când apeși Rulează, întreaga rulare este calculată mai întâi și apoi redată. Fiecare comandă executată este un pas, la fel și fiecare condiție verificată („Este drumul din față liber? Da”). Același program pe aceeași hartă rulează întotdeauna la fel.
  4. Un nivel este rezolvat când programul se termină fără eroare, robotul ajunge pe țintă (dacă harta are una) și nu mai rămâne nicio monedă. Unele niveluri au două sau trei hărți și programul trebuie să le treacă pe toate: harta de pe ecran rulează la vedere, celelalte sunt verificate în liniște, iar dacă una eșuează, jocul trece la ea și arată de ce.
  5. O rulare se oprește cu o eroare la blocul care a provocat-o: robotul ar lovi un perete, ar ridica o monedă acolo unde nu e niciuna sau programul este gol. După 1000 de pași rularea se oprește ca buclă infinită, iar o funcție care se apelează pe ea însăși la mai mult de 50 de niveluri adâncime se oprește ca apel infinit.
  6. Unele niveluri permit doar un număr limitat de blocuri. Se numără fiecare bloc, inclusiv cele din bucle, condiții și funcții; un bloc care conține alte blocuri se numără o singură dată.
  7. Programul la care lucrezi în fiecare nivel și lista nivelurilor rezolvate sunt păstrate doar în spațiul de stocare al browserului tău.

Ipoteze și limite

  • Robotul cunoaște doar 4 comenzi (mergi înainte, întoarce-te la stânga, întoarce-te la dreapta, ridică o monedă) și 5 condiții (drum liber în față, la stânga și la dreapta, stă pe o monedă, este pe țintă), fiecare putând fi și negată.
  • Nu există variabile, calcule cu numere și nici funcții proprii cu parametri. Nivelul pregătește fiecare funcție (numele și rostul ei); tu construiești doar ce face.
  • Python-ul este doar pentru citire: arată cum arată programul ca text, dar încă nu îl poți tasta. Comenzi precum move() sau path_ahead() sunt funcții ale acestui joc, nu parte din Python, așa că codul singur nu va rula în afara jocului.
  • Numele din Python sunt în engleză (move, turn_left, pick_coin…), ca în programele reale; blocurile sunt în limba paginii.
  • Robotul face exact ce spune programul; nu ghicește și nu corectează nimic. Nu e o lipsă: e principalul lucru de învățat aici.

Hărțile și nivelurile le-am gândit noi ca exerciții; nu sunt date. Ideea unui robot condus printr-o grilă de un program vine de la Karel the Robot, descris de Richard E. Pattis în 1981 ca prim exercițiu de programare.

Sursele datelor și perioada la care se referă

Fiecare număr de la care pornește un calculator sau din care calculează provine dintr-una dintre sursele de mai jos. Denumirile seriilor sunt date așa cum le numește editorul. Fiecare rând arată perioada la care se referă datele și, acolo unde o înregistrăm, ziua în care le-am descărcat. Datele oficiale pot avea luni de zile la publicare, așa că verificați valoarea actuală înainte de a decide.

Oficial
Publicat de o bancă centrală, un institut de statistică, Uniunea Europeană sau alt organism public.
Date academice sau din industrie
Un set de date al unei universități, al unui furnizor de indici, al unei asociații din industrie sau al unui furnizor de date.
Din presă
O cifră a unui organism oficial pe care o cunoaștem doar din presă și nu am verificat-o în sursa originală. Considerați-o aproximativă.
Exemplu
Un număr rotund de-al nostru, nu o statistică. Înlocuiți-l cu al dumneavoastră.

Bazele programării și limbajul Python

SursaPerioadaTip
Python Software FoundationThe Python Tutorial, 4. More Control Flow Tools (if, for, range, def)
în vigoaredescărcat la 2026-10-19Date academice sau din industrie
Python Software FoundationThe Python Language Reference, 8. Compound statements (if, while, for, function definitions)
în vigoaredescărcat la 2026-10-19Date academice sau din industrie
Richard E. PattisKarel the Robot: A Gentle Introduction to the Art of Programming (John Wiley & Sons, 106 pages)
1981descărcat la 2026-10-19Date academice sau din industrie

Textul metodologiei a fost verificat ultima dată la 2026-10-06. Datele au fost descărcate ultima dată la 2026-10-19. Cum lucrăm cu datele și sursele