Учебник_1

Создания строкового типа данных
 
Представьте что вам нужно создать карту 10x10 причем каждая клетка будет содержать несколько параметров. Вот тут то и помогут вам типы. Вы создаете тип с именем TMap в котором будут парматры X, Y, Name$. Теперь объявляете переменную newmap(9,9) типом TMap и чтобы получить доступ к любому из парметров клетки нужно всего лишь использовать newmap(0,0)\X = значение. В blitz типы немного расширены... Допутим вам нужно создать противника типичного которых по игре будет сотни но сколько точно вы не знаете. Вы создаете тип TPlayer с параетрами ... среди них должно быть обязательно Name$. При создании нового противника newplayer обязательно задайте Name... теперь игрок есть даже если вы удалите newplayer он содержится в TPlayer где то среди неограниченных его копий. и чтобы получить доступ к его параметрам нужно вызвать newplayer и найти нужного по Name$.
Пример объявления:

Type MyType
Field x,y
End Type
Создает тип 'MyType' с 2 парметрами - x и y.

Еще один пример:

Type MyType
Field x,y
Field description$
Field delta_x#,delta_y#
End Type

Теперь чтобы создать переменную или массив вашего типа нужно использовать символ '.' . Пример:

Global mine.MyType Dim all_mine.MyType( 100 )

До того как вы сможете использовать вашу переменную вам необходимо использовать опертор 'New'. Пример:

mine.MyType=New MyType

Оператор 'New' создает 'object' типа 'MyType', и возвращает 'pointer' новому объекту.
Для того чтобы вызвать параметры типа нужно использовать символ '\'. Пример:
 
 mine\x=100 Print mine\x
 
Уничтожение переменной типа:
Когда вы закончили работу с типом через переменную используйте комманду 'Delete'. Небойтесь вся информация записана в типе а не в переменной через которую осуществляется доступ. При следеющем вызове типа через какую нибудь переменную у вас о5 появится доступ к ранее записанным данным. Пример:
 
Delete mine

Специальное слово 'Null' используется для проверки существования объекта. Объект несуществует если ранее не был вызван опертором 'New', или уже был стерт опертором 'Delete'. Пример:

mine.MyType=New MyType
If mine<>Null
Print "exists!"
Else
Print "doesn't exist!"
EndIf
Delete mine
If mine<>Null
Print "exists!"
Else
Print "doesn't exist!"
EndIf
...на экране появится:
exists!
doesn't exist!

Список типов динамичен и может быть просканирова при помощи множества комманд таких как Each....
Слова 'First', 'Last', 'After' и 'Before' позволяют вам работать с листом типа. Опертор 'First' позволяет осуществлять доступ к первому эллементу типа. Пример:
mine.MyType=First MyType
Тоже и с остальными оперторами.
Если тип пуст то выводится 'Null'.
Еще два опертора 'After' перебирает объекты, и 'Before' перебирает объекты в обратном порядке.

Пример:

mine.MyType=First MyType ;mine=first object in the type list
mine=After( mine ) ;mine=second object
mine=After( mine ) ;mine=third object
mine=Before( mine ) ;mine=second object
mine=Before( mine ) ;mine=first again!
'After' и 'Before' возвращают 'Null' если тип пуст или объектов дальше нет. Пример:
mine.MyType=Last MyType ;mine=last object
mine=After( mine ) ;object after last does not exist!
Так же можно вставлять опретором Insert в любое место списка. Пример:
mine1.MyType=New MyType
mine2.MyType=New MyType
Insert mine2 Before mine1
Прмер как вставить новый эллемент в начало списка:
Insert mine Before First MyType
Специальная форма For...Next позволяет вам легко проверить каждый эллемент типа в листе. Пример:
For mine.MyType=Each MyType
Next
Наконец, опертор 'Delete Each' Позволит вам удалить все эеллементы из листа типа. Пример:
Delete Each MyType


Форма входа

Наш опрос
Какие Вы пробовали новые средства разработок?
Всего ответов: 140
Календарь
«  Декабрь 2018  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930
31
Архив записей
Поиск
Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0
Друзья сайта
  • Все об умных часах и фитнес-браслетах
  • Все о поездах и железных дорогах!
  • Aндроид-клуб
  • Автоистория СССР
  • Блог о wordpress
  • Ноты для фортепиано

  • WIFI DIRECT

    все для wordpress



    умные часы Swatch
    умные очки Sony
    умные часы Fitbit Surge