K
kmm96
у меня один вопрос с помощью этого кода мне нужно запустить программу лабиринт! нужно вывести ходы которые возможны и сам лабиринт в виде матрицы[7.7] 0-пустые ячейки, 1- стена, 2 начальная точка [5.4]
Код:
const int M = 7, N = 7;
int LAB[M][N];
int CX[4], CY[4];
int L, X, Y, I, J, TRIAL;
bool YES;
void TRY(int X, int Y, bool &YES)
{
int K, U, V;
if (X == 1 || X == M || Y == 1 || Y == N) YES = true;
else
{
K = 0;
do
{
++K;
U = X + CX[K - 1];
V = Y + CY[K - 1];
if (LAB[U - 1][V - 1] == 0)
{
++TRIAL;
++L;
LAB[U - 1][V - 1] = L;
TRY(U, V, YES);
if (!YES)
{
LAB[U - 1][V - 1] = -1;
--L;
}
}
} while (!(YES || K == 4));
}
}
int main()
{
for (J = N - 1; J <= 0; --J)
for (I = 0; I < M; ++I)
cin >> LAB[I][J];
cin >> X >> Y;
L = 2;
LAB[X - 1][Y - 1] = L;
CX[0] = -1; CY[0] = 0;
CX[1] = 0; CY[1] = -1;
CX[2] = 1; CY[2] = 0;
CX[3] = 0; CY[3] = 1;
YES = false; TRIAL = 0;
TRY(X, Y, YES);
if (YES) cout << "Path exists\n";
else cout << "Path does not exist\n";
}