Я хотел реализовать некоторые графы и связующее дерево, которые я выучил в классе на этой неделе, поэтому я создал алгоритм генерации лабиринта на основе алгоритма Прима.Сейчас я пытаюсь создать алгоритм для эффективного решения лабиринтов.До сих пор я сделал заливку, которая в конечном итоге решает лабиринт, но очень неэффективна.Сейчас я пытаюсь найти способ преобразовать лабиринт в граф, чтобы использовать алгоритм Дейкстры или DFS, но я в тупике.Лабиринт хранится в двоичном массиве, где 1 - стена, а 0 - открытое пространство.Лабиринт всегда начинается с единственного 0 в первой строке и заканчивается единственным нулем в последней строке.Лабиринт хранится, как показано ниже.
static int maze2[][] = {{1, 1, 1, 1, 1, 0, 1, 1, 1, 1},
{1, 1, 1, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 1, 0, 1, 0, 0, 1},
{1, 0, 0, 1, 1, 0, 1, 1, 0, 1},
{1, 1, 0, 0, 1, 0, 1, 1, 0, 1},
{1, 0, 0, 1, 1, 0, 1, 0, 0, 1},
{1, 1, 0, 0, 1, 0, 1, 0, 1, 1},
{1, 0, 0, 1, 1, 0, 1, 0, 0, 1},
{1, 1, 0, 0, 1, 0, 1, 0, 1, 1},
{1, 1, 1, 1, 1, 0, 1, 1, 1, 1}};