랜덤 미로가 오른쪽에있는 입구에서 왼쪽 벽면에있는 출구로 이어지는 경로를 차단할 수 있는지 확인하는 방법을 모르겠습니다. 이것은 지금까지 내가하고있는 코드이다. 모두가 간단한 미로 (입/퇴장)를 달성하기위한 힌트 또는 알고리즘을 제공 할 수 있습니까? 고맙습니다! P는/내 문제가 ... (박히) 출구 경로를 보장 할 수 없습니다 미로 생성기 S무작위 미로 생성기 C
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define SIZE 12
void mazeGenerator(char [][SIZE]);
int main(void)
{
char maze[SIZE][SIZE];
srand((unsigned int)time(NULL));
mazeGenerator(maze);
return 0;
}
void mazeGenerator(char a[SIZE][SIZE])
{
size_t row,column = 0, r;
// initialize '#' to all positions of left-hand wall
for (row = 0; row < SIZE; ++row)
{
a[row][column] = '#';
}
// initialize '#' to all positions of left-hand wall
for (row = 0; row < SIZE; ++row)
{
a[row][SIZE - 1] = '#';
}
// initialize '.' to left-hand wall random positions from 1 -> 10
row = rand() % 11 + 1;
a[row][0] = '.';
// initialize '.' to right-hand wall random positions from 1 -> 10
row = rand() % 11 + 1;
a[row][SIZE - 1] = '.';
// intialize '#' to all positions of top maze
for (column = 1; column < SIZE - 1; ++column)
{
a[0][column] = '#';
}
// intialize '#' to all positions of bottom maze
for (column = 1; column < SIZE - 1; ++column)
{
a[SIZE - 1][column] = '#';
}
// print maze
puts("");
puts("** Maze Generator by Huy Le **\n");
for (row = 0; row < SIZE; ++row)
{
for (column = 0; column < SIZE; ++column)
{
printf_s("%2c",a[row][column]);
}
puts("");
}
puts("");
}
먼저 입구와 출구 사이의 경로를 생성 한 다음 벽을 구축하지 않는 이유 그냥 생각은하고, 당신이 세운 길에 벽이 없을 것이라는 제약을가하겠습니까? – Inox
나는 똑같은 아이디어를 가지고 있지만 직선을 만들 수 있으며 부 자연스럽게 보입니다. –