Вывод карты из файла - 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.

Объяснение кода листинга программы

  1. Задание: вывести карту из файла.
  2. Используемые модули: GraphABC, ABCObjects.
  3. Переменные:
    • f1: текстовый файл для чтения.
    • w, h: целочисленные переменные для хранения количества строк и столбцов карты соответственно.
    • i, j: целочисленные переменные для индексации массива.
    • s: строковая переменная для хранения строки из файла.
    • map: двумерный массив объектов PictureABC для хранения картинок карты.
  4. Код:
    • Открыть файл f1 на чтение (f1 := '1.txt').
    • Определить количество строк и столбцов карты (h := 0; w := 0).
    • Прочитать строку из файла в переменную s и увеличить h на 1.
    • Повторять этот процесс до тех пор, пока не достигнут конец файла.
    • Закрыть файл f1.
    • Создать двумерный массив map заданного размера (setlength(map, h, w)).
    • Открыть файл f1 снова на чтение.
    • Прочитать каждую строку из файла в переменную s.
    • Для каждого символа в строке проверить, является ли он символом '#'.
    • Если символ является '#', создать новый объект PictureABC и сохранить его в соответствующую ячейку массива map.
    • Закрыть файл f1.
  5. Значение переменной s может быть любой строкой, содержащей символы '#' и другие символы.
  6. Значение переменной map будет двумерным массивом объектов PictureABC, представляющих карту.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.333 из 5
Похожие ответы