标签:迷宫
在迷宫里面找到出口
#include <stdio.h>
#include <stdlib.h>
/*
-1  障碍物
0 空白
1 可以走的路线
*/
#define MAX_ROW  9
#define MAX_COLUMN  9
int datas[9][9] ={
-1,  0, -1, -1, -1, -1, -1, -1, -1,
 0,  0,  0,  0,  0, -1, -1, -1, -1,
 0, -1, -1, -1,  0, -1, -1, -1, -1,
-1, -1,  0, -1,  0, -1, -1, -1, -1,
-1, -1, -1,  0,  0, -1, -1, -1, -1,
-1, -1, -1,  0, -1, -1, -1,  0, -1,
-1, -1, -1,  0, -1, -1, -1,  0, -1,
-1, -1, -1,  0,  0,  0,  0,  0, -1,
-1, -1, -1, -1, -1, -1, -1,  0,  0
};
/**
    左右上下顺序进行搜索
    return 小于0:上个点应该重置为不可用
*/
int tryFind(int x, int y) {
    int notBlockPoint = -1;
    if (x == 2 && y== 0) {
        printf("xxx\n");
    }
    if(datas[x][y] == 1) {
        //已经找过的点
        return -1;
    }
    if(datas[x][y] == 0) {//可用的点,设置成已经找过的点
        //printf("set x %d y %d", x, y);
        datas[x][y] = 1;
    }else {//不可达点,返回
        //printf("unset x %d y %d", x, y);
        return -1;
    }
    if(x == MAX_ROW - 1 && y == MAX_COLUMN - 1) {
        return 1;
    }
    if(y == 0){ //第1列不需要向坐找了
    }else {
        if (tryFind(x, y-1) > 0){
            notBlockPoint = 1;
        }
    }
    if(y == MAX_COLUMN - 1){//最后一列不需要向右
    }else{
        if(tryFind(x, y+1) > 0){
            notBlockPoint = 1;
        }
    }
    if(x == 0) {
    }else {
        if(tryFind(x-1, y) > 0){
            notBlockPoint = 1;
        }
    }
    if(x == MAX_ROW - 1) {
    }else{
        if(tryFind(x+1, y) > 0){
            notBlockPoint = 1;
        }
    }
    if(notBlockPoint < 0) {
        datas[x][y] = 0;
    }
    printf("end x%d y%d \n", x, y);
    return notBlockPoint;
}
int main()
{
    printf("Hello world!\n");
    tryFind(0, 1);
    int i, j;
    for(i=0; i< MAX_ROW; i++) {
        for(j=0; j<MAX_COLUMN; j++){
            if(datas[i][j] == -1) {
                printf("=");
            }else if(datas[i][j] == 1) {
                printf(">");
            }else{
                printf(" ");
            }
            if(j == MAX_COLUMN - 1){
                printf("\n");
            }
        }
    }
    return 0;
}本文出自 “www.bogo.com” 博客,请务必保留此出处http://483181.blog.51cto.com/473181/1925977
标签:迷宫
原文地址:http://483181.blog.51cto.com/473181/1925977