Пожалуйста, помогите мне, указав название алгоритма или если у вас есть хороший исходный код для решения проблемы.
Чтобы понять проблему,
Вот некоторые данные в формате JSON, соответствующие исходному изображению на карте
{"wallX":[0,2],"wallY":[0,2],"startX":0,"startY":1,"maxX":3,"maxY":3}
{"wallX":[],"wallY":[],"startX":1,"startY":4,"maxX":6,"maxY":6}
Правила
- 99 представляют стену. X&Y стены[индекс] представлены стенойX[индекс] и стенойY[индекс].
- 01 представляют начальную точку Змеи. X&Y из 01 представлены startX и startY
- maxX представляет столбец двумерного массива, а maxY представляет строку двумерного массива. Оба maxX и maxY ‹= 9
- На начальном двухмерном массиве/карте любая плитка, отличная от 01 или 99, будет плиткой 00.
- Змея может двигаться только до 00
- Змея двигается 4 способами [слева, сверху, справа, снизу]
Ввод программы - это формат JSON.
Вывод программы должен быть:
- 2-мерный массив состоит из 99 и/или (от 01 до 0X) без оставшихся 00 плиток, которые представляют карту решенной.
- Исходный двумерный массив, который представляет, что больше нет возможных ходов, но есть как минимум 1 из 00
Вот некоторые другие входные данные, соответствующие их выходному изображению 2D-массива
{"wallX":[0,0,1,2,3,4,5],"wallY":[0,4,5,1,1,1,4],"startX":0,"startY" :3,"максХ":6,"максУ":8}
{"wallX":[0,1],"wallY":[0,1],"startX":0,"startY":1,"maxX":2,"maxY":2}
{"wallX":[0,2],"wallY":[0,2],"startX":1,"startY":1,"maxX":3,"maxY":3}
Я сделал свой собственный исходный код для решения этой проблемы, но я хочу найти алгоритм, чтобы я мог больше узнать о том, как на самом деле справиться с этим/связанным алгоритмом/проблемой.
Я попытался выполнить поиск в Google по ключевому слову, такому как «Заполнить», но большинство результатов показали мне [Алгоритм заполнения-заполнения]. Большинство Flood Fill, которые я читал, не могут быть применены здесь, так как Snake или [LastNumber] должны быть смежными с [LastNumber+1].
Я также пытался найти о Pathing, но кажется, что PathFinding работает, если есть Start и Destination, но эта проблема, похоже, не имеет четкого Destination.
Пожалуйста, поправьте меня, если я ошибаюсь в этом ^
Заранее спасибо за вашу помощь