icegreenberry
@icegreenberry

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

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


допустим в текстовом файле в двумерной декартовой системе координат представлен простейший лабиринт в виде единиц (стены), нолей(комнаты) и двойки (финиш).Таким образом двойка находится по координатам (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]
  • Вопрос задан
  • 3125 просмотров
Пригласить эксперта
Ответы на вопрос 3
belk
@belk
for(j=5;j>=1;j--)
	for(i=1;i<=6;i++)
		scanf("%i",&array[i][j]);

Как-то так.
Ответ написан
Комментировать
mardy_bum
@mardy_bum
Не понимаю почему нельзя просто считать файл как обычно?
Ответ написан
Комментировать
barmaley_exe
@barmaley_exe
Если мы заранее знаем размеры лабиринта (или можем их прочитать), то нужно просто записывать по адресу matrix[n – i – 1][j] (можно прибавить к каждому индексу по единице, чтобы нумерация шла с 1, но тогда и памяти нужно выделять больше — (n + 1) * (m + 1)).

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы