Misiunea taCitește harta cu harta() și condu robotul la țintă pe drumul cel mai scurt. Verificarea compară numărul de pași cu drumul minim pe fiecare hartă.
Ideea de azi
Parcurgerea în lățime (BFS) găsește drumul cel mai scurt pe o hartă: pornește din start, vizitează vecinii, apoi vecinii vecinilor, folosind o coadă (deque). Pentru fiecare pătrățel reține de unde ai venit, apoi refă drumul invers de la țintă.
Un exemplu
from collections import deque
q = deque([start])
while q:
x, y = q.popleft()
...
Comenzile robotului
Comenzile robotului:
inainte(pasi=1), inapoi(pasi=1), stanga(), dreapta()
distanta() → câte pătrățele libere sunt în față
perete_in_fata(), perete_stanga(), perete_dreapta()
pe_linie(), linie_in_fata(), linie_stanga(), linie_dreapta()
culoare(), obiect(), ridica(), lasa(), cara()
la_tinta(), pozitie() → (x, y), directie() → 'E', 'S', 'V' sau 'N'
harta() → listă de rânduri ('#' perete, '.' liber, 'T' țintă, 'R' robot)
spune(mesaj) → robotul afișează un mesaj
Verifică înainte de predare
Compară lucrarea cu fiecare cerință. Folosește Verifică pentru feedback și Indiciu atunci când ai nevoie. Poți corecta și verifica din nou; profesorul vede versiunea pe care o predai.
MOD DEMONSTRATIVLucrezi fără cont: lucrarea se păstrează doar în acest browser. Verificarea și indiciile funcționează complet. Creează un cont ca să predai lucrarea și să strângi XP.