Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
#define TRUE 1
#define FALSE 0
int main() {
char ch = 'A', mat[N][N] = {
{'.', '.', '.', '.', '.', '.', '.', '.', '.', '.'},
{'.', '.', '.', '.', '.', '.', '.', '.', '.', '.'},
{'.', '.', '.', '.', '.', '.', '.', '.', '.', '.'},
{'.', '.', '.', '.', '.', '.', '.', '.', '.', '.'},
{'.', '.', '.', '.', '.', '.', '.', '.', '.', '.'},
{'.', '.', '.', '.', '.', '.', '.', '.', '.', '.'},
{'.', '.', '.', '.', '.', '.', '.', '.', '.', '.'},
{'.', '.', '.', '.', '.', '.', '.', '.', '.', '.'},
{'.', '.', '.', '.', '.', '.', '.', '.', '.', '.'},
{'.', '.', '.', '.', '.', '.', '.', '.', '.', '.'}};
int direction, zero = 0, one = 0, two = 0, three = 0, row = 0, col = 0;
srand((unsigned) time(NULL));
mat[row][col] = ch;
ch++;
while (ch > 'A' && ch <= 'Z'){
if (zero == TRUE && one == TRUE && two == TRUE && three == TRUE)
break;
direction = rand() % 4;
switch (direction) {
case 0:
if (zero == TRUE)
break;
zero = TRUE;
if (row < N)
row = row + 1;
else
break;
if(mat[row][col] == '.'){
mat[row][col] = ch;
ch++;
zero = one = two = three = FALSE;
break;
}
else {
row = row -1;
break;
}
case 1:
if (one == TRUE)
break;
one = TRUE;
if (row > 0)
row = row - 1;
else
break;
if(mat[row][col] == '.'){
mat[row][col] = ch;
ch++;
zero = one = two = three = FALSE;
break;
}
else {
row = row + 1;
break;
}
case 2:
if (two == TRUE)
break;
two = TRUE;
if (col > 0)
col = col - 1;
else
break;
if(mat[row][col] == '.'){
mat[row][col] = ch;
ch++;
zero = one = two = three = FALSE;
break;
}
else{
col = col + 1;
break;
}
case 3:
if (three == TRUE)
break;
three = TRUE;
if (col < N)
col = col + 1;
else
break;
if(mat[row][col] == '.'){
mat[row][col] = ch;
ch++;
zero = one = two = three = FALSE;
break;
}
else{
col = col - 1;
break;
}
}
}
printf ("\n\n");
for (int row = 0; row < N; row++) {
for (int col = 0; col < N; col++){
printf("%c ", mat[row][col]);
}
printf("\n");
}
printf("\n\n\n");
return 0;
}