Вывод карты из файла - PascalABC.NET
Формулировка задачи:
Вопрос зеленого новичка.
Есть текстовый файл,в нем описание будущей карты для игры. В строке 16 выдает: нет перегруженной подпрограммы с такими типами параметров.
Если кратко,то в файле должны посимвольно перебираться строки. Если встречается знак '#', то грузиться текстура в массив (стена).
Вопрос: как мне перебирать строки в файле?
Решение задачи: «Вывод карты из файла»
textual
Листинг программы
uses GraphABC,ABCObjects; var f1:text; w,h,i,j:integer; s:string; map:array[,] of pictureABC; begin assign(f1,'1.txt'); reset(f1); h:=0;//количество строк while not eof(f1) do begin readln(f1,s); h:=h+1; end; w:=length(s);//количество столбцов close(f1); setlength(map,h,w); reset(f1); for i:=0 to h-1 do begin readln(f1,s); for j:=0 to w-1 do if s[j+1]='#' then map[i,j]:=PictureABC.Create(j*10+1,i*10+1,'3.bmp'); end; close(f1) end.
Объяснение кода листинга программы
- Задание: вывести карту из файла.
- Используемые модули: GraphABC, ABCObjects.
- Переменные:
- f1: текстовый файл для чтения.
- w, h: целочисленные переменные для хранения количества строк и столбцов карты соответственно.
- i, j: целочисленные переменные для индексации массива.
- s: строковая переменная для хранения строки из файла.
- map: двумерный массив объектов PictureABC для хранения картинок карты.
- Код:
- Открыть файл f1 на чтение (f1 := '1.txt').
- Определить количество строк и столбцов карты (h := 0; w := 0).
- Прочитать строку из файла в переменную s и увеличить h на 1.
- Повторять этот процесс до тех пор, пока не достигнут конец файла.
- Закрыть файл f1.
- Создать двумерный массив map заданного размера (setlength(map, h, w)).
- Открыть файл f1 снова на чтение.
- Прочитать каждую строку из файла в переменную s.
- Для каждого символа в строке проверить, является ли он символом '#'.
- Если символ является '#', создать новый объект PictureABC и сохранить его в соответствующую ячейку массива map.
- Закрыть файл f1.
- Значение переменной s может быть любой строкой, содержащей символы '#' и другие символы.
- Значение переменной map будет двумерным массивом объектов PictureABC, представляющих карту.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д