Сообщение от leonid
(спасибо PassCall'ю за урок с его сайта).
|
Незачто, пользуйся на здоровье
Сообщение от leonid
Допустим, я не хочу рандомного создания поля, а хочу, чтобы поле создавалось с помощью текстового ресурса. Как это осуществить?
|
Ну само по себе надо этот ресурс создать.
Допустим, мы хотим с помощью ресурса "создать" карту размером 10х10.
Так как единица отвечает за землю, а двойка - за "песок", то и в ресурсе надо так и писать. Строка должны быть 10 символов (единиц или нулей), а самих строк тоже должно быть 10.
Вот пример
1122112211
1122112211
1122112211
1122112211
2222222222
2222222222
1122112211
1122112211
1122112211
1122112211
В конце надо поставить еще 1 строку (можно и пустую), иначе при прочтении ресурса игра зависнет.
Итак, сохраняем этот текст под именем, например,
map.txt.
Загружаем его в проект (зеленый плюсик в мидлетпаскале).
ПРОЦЕСС КОДИНГА
Для начала нужно ввести переменную res (или любое другое имя), назначив её как resource. В общем выглядит это так:
res: resource; (добавлять это надо после слова
var)
Теперь сам код:
res:=openresource('/map.txt');//прежде чем что-то прочитать из ресурса, его необходимо открыть
for i:=1 to 10 do//читаем строку из ресурса
begin
S:=readline (res);//берем из ресурса строку и присваиваем (запоминаем) её к S. При каждом вызове readln номер читаемой строки увеличивается на 1. То есть в первый раз будет прочитана первая строчка, потом вторая и т.д.
for j:=1 to 10 do
land_array[j,i]:=stringtointeger(GetChar(S,j-1));//итак, что мы делаем? для начала при помощи GetChar выковыриваем из длинной строки S один символ. j-1 - это номер символа из строки. Первый символ имеет номер 0 (а не 1!), поэтому отнимаем единичку. Получили символ ("1" или "2"). Но так как символ это совсем не число, необходимо "превратить" символ в число. Делается это с помощью stringtointeger
end;
closeresource (res);//
Не забудь описать текстовую переменную S (
S:string;), если её нет, иначе МидлетПаскаль начнет "ругаться".
Всё. Если надо готовый пример, скажи.
P.S. Для создания всяческих карт (как в данном случае) и прочих игровых данных, не помешает подучить Delphi (тоже имеет паскалеподобный синктансис (какое заумное слово =) ). Он позволит облегчить и без того тяжелую жизнь программиста. Если интересно, могу создать и залить на свой сайт небольшую статью про него.