jednom sam naiso na takav problem, razbijao glavu i rjesio ga NEVJEROVATNO jednostavno. Prvo napravis matricu
Code:
int mat[sirina][duzina]
... moze i dinamicki ako je takav zahtjev
Code:
int *mat =new(sirina, duzina);
. Pitas zasto int... e pa bice ti jasno. Na toj matrici polja oznacis sa vrjednoscu 0 sve prepreke ili zidove. Sa vrjednoscu 1 oznacis tacku gdje treba da stignes, a sa vrjednoscu 32000 (ili vecom ako ti je polje bas ogromno) mjesto gdje treba da dodjes. Sada pocni da prelazis matricu kroz neku petlju oznacavajuci svako polje koje se nalazi lijevo, desno, gore, dolje od broja 1 sa brojem 2 a da nije 0 ili 32000... onda sa broja 2 na broj 3 itd (ne znam da li si skontao ovo do sada). Onda kada dodjes do toga da se ovaj broj koji se povecava u tvojoj petlji (1,2,3,4...) dosao do sudara sa poljem 32000 ili mjestom odakle si krenuo onda jednostavno prati polja sa manjim brojem i doci ces do cilja. Ovo je moje autorsko djelo al evo bio sam ljubazan da vam odam algoritam, uzivajte :)