Ejemplo n.º 1
0
int visit2(int i, int j, int s){
	int x;
	int k;
	//訪れたところにしるしをつける
	maze2_m[i][j] = 1;
	//とりあえずスタックに入れる
	maze2_ri[maze2_sp] = i; maze2_rj[maze2_sp] = j; maze2_sp++;

	for(x = 0; x < s; x++) printf(" ");
	printf("in  (%d, %d) \n", i, j);

	if(i == maze2_Ei && j == maze2_Ej){
		//ここにきているときはスタックが正しい
		for(k = 0; k < maze2_sp; k++)
			printf("(%d, %d) ", maze2_ri[k], maze2_rj[k]);
		printf("\n");
		maze2_success = 1;
	}

	if(maze2_success != 1 && maze2_m[i][j + 1] == 0) visit2(i, j + 1, s + 1);
	if(maze2_success != 1 && maze2_m[i + 1][j] == 0) visit2(i + 1, j, s + 1);
	if(maze2_success != 1 && maze2_m[i][j - 1] == 0) visit2(i, j - 1, s + 1);
	if(maze2_success != 1 && maze2_m[i - 1][j] == 0) visit2(i - 1, j, s + 1);

	for(x = 0; x < s; x++) printf(" ");
	printf("out (%d, %d) \n", i, j);
	//ここにいるということは失敗なのでスタックから出す
	maze2_sp--;
	return maze2_success;
}
Ejemplo n.º 2
0
void visit2(int i, int j)
{
    int m, n;
    maze2[i][j] = 1;
    if(i == endI2 && j == endJ2)
    {
        printf("\n 显示路径 : \n");
        for(m = 0; m < 9; m++)
        {
            for(n = 0; n < 9; n++)
                if(maze2[m][n] == 2)
                    printf("█");
                else if(maze2[m][n] == 1)
                    printf("◇");
                else
                    printf("  ");
            printf("\n");
        }
    }
    if(maze2[i][j+1] == 0) visit2(i, j+1);
    if(maze2[i+1][j] == 0) visit2(i+1, j);
    if(maze2[i][j-1] == 0) visit2(i, j-1);
    if(maze2[i-1][j] == 0) visit2(i-1, j);
    maze2[i][j] = 0;
}
Ejemplo n.º 3
0
void maze2(){
	//スタックのポインタ
	maze2_sp = 0;
	maze2_success = 0;
	maze2_Si = 1; maze2_Sj = 1; maze2_Ei = 5; maze2_Ej = 5;
	printf("\n 迷路の探索 \n");
	if(visit2(maze2_Si, maze2_Sj, 0) == 0){
		printf("出口は見つかりませんでした  \n");
	}
	printf("\n");
}
Ejemplo n.º 4
0
int mousemaze2(void)
{
    int i, j;
    printf(" 显示迷宫 : \n");
    for(i = 0; i < 7; i++)
    {
        for(j = 0; j < 7; j++)
            if(maze2[i][j] == 2)
                printf("█");
            else
                printf("  ");
        printf("\n");
    }
    visit2(startI2, startJ2);
    return 0;
}