Как лабиринт из текстового файла отобразить в виде двумерного массива?
Здравствуйте. Сейчас поздно и возможно я немножко торможу, но как-то не приходит в голову как проделать следующее:
допустим в текстовом файле в двумерной декартовой системе координат представлен простейший лабиринт в виде единиц (стены), нолей(комнаты) и двойки (финиш).Таким образом двойка находится по координатам (4,5)
1,1,1,2,1,1
1,0,0,0,0,1
1,0,1,1,0,1
1,0,0,1,0,1
1,1,1,1,1,1
Как преобразовать этот набор чисел в двумерный массив таким образом, чтобы каждое значение массива имело ключ как в декартовой системе координат? Тоесть, чтобы двойка находилась в array[4][5]
Если мы заранее знаем размеры лабиринта (или можем их прочитать), то нужно просто записывать по адресу matrix[n – i – 1][j] (можно прибавить к каждому индексу по единице, чтобы нумерация шла с 1, но тогда и памяти нужно выделять больше — (n + 1) * (m + 1)).
Если размеры матрицы заранее неизвестны, а определить ее размерность мы должны в процессе чтения, то лучше, думаю, прочитать матрицу как обычно, а потом завернуть в класс с методами get и set (или, если позволяет язык, установить геттеры и сеттеры), в которых уже производить необходимые смещения, исходя из размеров матрицы, которые будут храниться в том же классе.