Вывод карты из файла - 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, представляющих карту.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д