#include <stdio.h> int sx = 0,sy = 0,ex = 4,ey = 4,success = 0; int maze[5][5] = {{0,1,0,0,0},{0,1,0,1,0},{0,0,0,0,0},{0,1,1,1,0},{0,0,0,1,0}}; int visit(int x,int y) { if(x > -1 && x < 5 && y > -1 && y < 5) { maze[x][y] = 2; if(x == ex && y == ey) success = 1; if(success == 0 && maze[x][y + 1] == 0) visit(x,y + 1); if(success == 0 && maze[x][y - 1] == 0) visit(x,y - 1); if(success == 0 && maze[x - 1][y] == 0) visit(x - 1,y); if(success == 0 && maze[x + 1][y] == 0) visit(x + 1,y); if(success == 0) maze[x][y] = 0; } return success; } int main(void) { visit(sx,sy); int i,j; for(i = 0;i < 5;i++) { for(j = 0;j < 5;j++) { if(maze[i][j] == 2) printf("(%d, %d)\n",i,j); } } return 0; } |
Double click to view unformatted code.