Сведения о вопросе

SOON

06:14, 9th August, 2020

Как лабиринт из текстового файла отобразить в виде двумерного массива?

Просмотров: 438   Ответов: 3

Здравствуйте. Сейчас поздно и возможно я немножко торможу, но как-то не приходит в голову как проделать следующее:


допустим в текстовом файле в двумерной декартовой системе координат представлен простейший лабиринт в виде единиц (стены), нолей(комнаты) и двойки (финиш).Таким образом двойка находится по координатам (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]



  Сведения об ответе

DINO

08:30, 13th August, 2020

for(j=5;j>=1;j--)
	for(i=1;i<=6;i++)
		scanf("%i",&array[i][j]);

Как-то так.


  Сведения об ответе

SEEYOU

06:48, 12th August, 2020

Не понимаю почему нельзя просто считать файл как обычно?


  Сведения об ответе

PAGE

04:19, 25th August, 2020

Если мы заранее знаем размеры лабиринта (или можем их прочитать), то нужно просто записывать по адресу matrix[n – i – 1][j] (можно прибавить к каждому индексу по единице, чтобы нумерация шла с 1, но тогда и памяти нужно выделять больше — (n + 1) * (m + 1)).

Если размеры матрицы заранее неизвестны, а определить ее размерность мы должны в процессе чтения, то лучше, думаю, прочитать матрицу как обычно, а потом завернуть в класс с методами get и set (или, если позволяет язык, установить геттеры и сеттеры), в которых уже производить необходимые смещения, исходя из размеров матрицы, которые будут храниться в том же классе.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться