Sunteți pe pagina 1din 1

Zona de lupt se reine ntr-o matrice binar n care valoarea 1 semnific prezena unui lupttor iar 0, zon liber.

Nu exist un algoritm optim de determinare a lupttorilor care atac se scaneaz matricea n cutarea primului lupttor care are un combatant sus, n dreapta, !os sau la st"nga. #n caz afirmativ, trebuie s existe o zon liber alturat conform specificaiilor din problem. $e actualizeaz matricea corespunztor %0 n locaia surs &i a lupttorului care pierde, respectiv 1 n locaia destinaie' &i se apeleaz o funcie recursiv pentru a determina o alt situaie asemntoare care poate fi oriunde n matrice. $uccesiunea luptelor se memoreaz n vectorul drum de tip saritura care reine linia &i coloana lupttorului care atac respectiv modul de atac n sus, n dreapta, !os sau la st"nga printr-o valoare de la 1 la (. )uncia recursiv lupta are un singur parametru cu a!utorul cruia se memoreaz n vectorul drum succesiunea de lupttori. *eoarece alegerea acestora nu este totdeauna optim, este posibil ca la un moment dat s nu se mai poat continua nicio lupt. #n acest caz se va reveni cu un pas napoi &i se va ncerca o alt variant. +ezult c matricea trebuie readus la stadiul existent nainte de actualizare &i abia apoi cutat alt drum. ,ceast operaie trebuie efectuat imediat dup nc-eierea apelului recursiv.

S-ar putea să vă placă și