class Program
{
private static int N = 8;
private static int[,] maze = new int[8, 8]
{
{ 0,0,0,0,0,0,0,1 },
{ 0,1,1,0,1,1,0,1 },
{ 0,0,0,1,0,0,0,1 },
{ 0,1,0,0,1,1,0,0 },
{ 0,1,1,1,0,0,1,1 },
{ 0,1,0,0,0,1,0,1 },
{ 0,0,0,1,0,0,0,1 },
{ 0,1,1,1,0,1,0,0 }
};
public static int PATHWAY = 0;
public static int WALL = 1;
public static int BLOCKED = 0;
public static char PATH = 3;
public static bool FindMazePath(int x, int y)
{
if (x < 0 || y < 0 || x >= N || y >= N)
{
return false;
}
else if (maze[x, y] != PATHWAY)
{
return false;
}
else if (x == N - 1 && y == N - 1)
{
maze[x, y] = PATH;
return true;
}
else
{
maze[x, y] = PATH;
if (FindMazePath(x - 1, y) || FindMazePath(x, y + 1) || FindMazePath(x + 1, y) || FindMazePath(x, y - 1))
{
return true;
}
maze[x, y] = BLOCKED;
return false;
}
}
public static void printMaze()
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
Console.Write(maze[i, j]);
}
Console.WriteLine();
}
}
public static void Main(string[] args)
{
printMaze();
Console.WriteLine(FindMazePath(0, 0));
Console.WriteLine();
printMaze();
}
여기서 public static char PATH = 3 이 부분을 3이 아닌 *로 출력되게 하고 싶은데, 이렇게 하니 별이 아니라 자꾸 다른 숫자가 출력이 되버리네요. 어떻게 하면 가능할까요?