У меня есть 2D-массив 9x9. Я хочу создать очень Binding of Isaac-esque напольную систему. Я хочу использовать 2D-массив для создания карты комнат в массиве 9x9. Я просмотрел весь Интернет, но не могу найти алгоритм или какой-то полезный код, который поможет мне это сделать. Проблемы таковы: использование 2D-массива для создания пола из комнат, которые соединяются - скажем, что-то вроде этого, где 1 - это комнаты, а 0 - это ничто...
[['0','0','0','0','0','0','0','0','0'],
['0','0','0','0','1','0','0','0','0'],
['0','0','1','1','1','1','1','0','0'],
['0','0','1','0','1','0','0','1','0'],
['0','2','1','1','1','1','1','1','0'],
['0','0','0','0','1','0','1','0','0'],
['0','0','0','0','1','0','1','1','0'],
['0','0','0','0','1','0','0','0','0'],
['0','0','0','0','0','0','0','0','0']]
Затем для каждой комнаты алгоритм должен был бы решить, есть ли в комнате 4 двери — 4 комнаты, соединяющиеся с ней — или, скажем, 2 двери, одна вверху и одна внизу, чтобы я не получил комнаты, которые, скажем, имеют 4 двери, но только одна комната, соединенная с ним.
И, наконец, начальная комната должна быть в центре, а одна из внешних комнат должна быть выбрана в качестве конечной комнаты, которая будет иметь другой стиль комнаты (обозначена цифрой 2 в приведенном выше коде). Если возможно, эта комната должна быть соединена только с одной другой комнатой, чтобы ее было труднее найти.