Вывод карты из файла - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Вопрос зеленого новичка. Есть текстовый файл,в нем описание будущей карты для игры. В строке 16 выдает: нет перегруженной подпрограммы с такими типами параметров. Если кратко,то в файле должны посимвольно перебираться строки. Если встречается знак '#', то грузиться текстура в массив (стена). Вопрос: как мне перебирать строки в файле?

Решение задачи: «Вывод карты из файла»

textual
Листинг программы
  1. uses GraphABC,ABCObjects;
  2. var f1:text;
  3.     w,h,i,j:integer;
  4.     s:string;
  5.     map:array[,] of pictureABC;
  6. begin
  7. assign(f1,'1.txt');
  8. reset(f1);
  9. h:=0;//количество строк
  10. while not eof(f1) do
  11.  begin
  12.   readln(f1,s);
  13.   h:=h+1;
  14.  end;
  15. w:=length(s);//количество столбцов
  16. close(f1);
  17. setlength(map,h,w);
  18. reset(f1);
  19. for i:=0 to h-1 do
  20.  begin
  21.   readln(f1,s);
  22.   for j:=0 to w-1 do
  23.   if s[j+1]='#' then  map[i,j]:=PictureABC.Create(j*10+1,i*10+1,'3.bmp');
  24.  end;
  25. close(f1)
  26. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы