Backtracking – problema labirintului

Se dă un labirint reprezentat sub forma unei matrici cu n linii şi m coloane, conţinând doar valori 0 şi 1. O succesiune de 1 reprezintă un drum iar o reprezintă zid. Dintr-un punct iniţial, a cărui coordonate se citesc, porneşte o persoană. Să se afişeze toate posibilităţile ca acea persoană să iasă din labirint (să atingă una din marginile matricei), ştiind că deplasarea se poate face doar prin valori 1 ale matricei, iar salturile se pot face în stânga, dreapta, jos şi sus.


#include "stdio.h"
#include "conio.h"
//matricea a conţine valorile labirintului iar în matricea rez vom păstra drumul
//parcurs în cadrul unei posibile soluţii
int a[10][10],rez[10][10],n;
void scrie(void)
{
  int i,j;
  for(i=0;i < n;i++)   {     //afişăm matricea drumului de ieşire; succesiunea de 1 reprezintă drumul     for(j=0;j < n;j++)     printf("%d",rez[i][j]);     putchar("\n");   }   putchar("\n");   //după fiecare soluţie se aşteaptă apăsarea unei taste   getch(); } Continue reading