Автор Тема: Программирование в pawno [Урок 7] | Массивы  (Прочитано 3059 раз)

Август 14, 2015, 17:17:59 pm
Прочитано 3059 раз

Freezy_Spurt

  • *****
  • Information
  • Участник
  • Администратор
  • Сообщений: 66
  • Репутация: 2
    • Просмотр профиля
Программирование в pawno [Урок 7] | Массивы

Раз уж дело вы прошли урок о строках, а строки являются массивами, в этом уроке я расскажу о
массивах.
Массивы бывают нескольких типов, как и переменные в основном вещественные и целочисленные. О
логических массивах я говорить не стану, они бессмысленные и нигде не применяются. Также они бывают
одномерными, двумерными и трехмерными.
Кроме вышеперечисленных типов, существует массив, называемый enum - это массив переменных.
Итак, начнем по порядку с одномерных массивов.
Одномерный массив
Одномерный массив объявляется в начале как обычная строка, затем следует оператор присваивания
(=) и в фигурных скобках, через запятую пишутся значения ячеек. Число значений должно соответствовать
числу в квадратных скобках, как это показано на примере ниже:
new pawn[5] = {347,782,632,437,721}; //одномерный массив целочисленного типаВ приведенном выше примере создан инициализированный массив из 5 ячеек, со своими значениями в
каждой ячейке. Обращаться по ним можно по индексам ячеек: 0, 1, 2, 3, 4. Последняя экстра – ячейка – 5 не
используется никогда, она нужна для хранения идентификатора массива.
Поскольку массив эта виртуальная таблица, сейчас я научу вас обращаться к определенной ячейке
данной таблицы и получать из нее данные или наоборот записывать в нее данные.
Итак, чтобы обратиться к ячейке со значением 782 (смотрите массив из первого примера), вы пишете
ссылку на нее. Ссылка будет выглядеть следующим образом:
pawn[1]; //ссылаемся на ячейку со значением 782Не забываем, что отсчет ячеек начинается с 0, поэтому в квадратных скобках стоит единица. Теперь мы
можем делать все что угодно с данным значением. Присвоим значение этой ячейке, например – 394.
pawn[1] = 394; //теперь значение в ячейке изменилось на 394То же самое, можно делать и с массивом вещественного типа. Он должен содержать только десятичные
числа, и объявляется он следующим образом:
new Float:pawn[5] = {347.34,782.53,632.46,437.24,721.35}; //одномерный массив вещественного типаЧасто одномерные массивы используют для всех игроков, то есть создают большой массив с
количеством ячеек равным максимальному количеству игроков на сервере. В языке Pawn уже предусмотрена
встроенная константа MAX_PLAYERS, которая равно 500. Одномерные массивы для всех игроков создаются
следующим образом:
new data[MAX_PLAYERS]; //одномерный массив для всех игроковТо есть мы создаем огромный массив из 500 ячеек. Чтобы обратиться к своей ячейке массива мы пишем
следующее:
data[playerid]; //ссылка на ячейку игрока.
Двумерный массив
Двумерный массив - это виртуальная таблица, состоящая из множества строк и столбцов. Первая цифра
указывает количество строк, вторая цифра количество столбцов. Столбец и строка 0 тоже учитывается.
Объявляется двумерный массив следующим образом:

new pawn[4][5] = { //двумерный массив целочисленного типа
{347,782,632,437,721},
{836,694,579,328,849},
{854,647,369,843,954},
{146,954,445,463,646}
};
Ну и соответственно, чтобы обратиться к ячейке, в ссылке указываете номер строки и столбца, начиная
от нуля. Давайте присвоим ячейке со значением 445 новое значение:
pawn[3][2] = 394; //теперь значение в ячейке изменилось на 394Обратите внимание, что строки в массиве помещены также в фигурные скобки, как и весь массив, они
между собой разделяются запятой, как и сами ячейки массива. Последняя строка массива остается как есть без
запятой. Чтобы вывести значение вышеуказанной ячейки в консоль нужно написать следующее:
 printf(“%d”,pawn[3][2]); //выводим число 394 в консоль, или 445, если значения не присваивали ранее ячейке
Enum
Массив enum – это массив переменных. В этом массиве могут быть переменные различных типов.
Массив объявляется следующим образом:

enum array
{
pawn,
sawn
}
В этом массиве объявлены две переменные. Но, чтобы обратиться к переменной в массиве вы не
можете написать так:
array[pawn] = 10;Сначала нужно создать одномерный массив, через который можно будет обращаться к переменным
массива. Обычно во всех модах данный массив создается для всех игроков сразу, я рассмотрю оба варианта
массива, общий и индивидуальный для каждого.
Массив создает следующим образом, создается как обычная строка, только в квадратных скобках
указывается имя массива enum. Если создать переменную, таким образом, как показано ниже, то массив array
будет общим для всех игроков.
new data[array]; //переменная делает массив ENUM общим для всех.Если сделать массив enum для всех игроков, то уже нужен двумерный массив, который создается
следующим образом:
new data[MAX_PLAYERS][array]; //переменная делает массив ENUM индивидуальным для каждого игрока.То есть, переменные внутри массива enum – Array будут иметь индивидуальные для каждого игрока
значения.

Программирование в pawno [Урок 6] | Строки
« Последнее редактирование: Август 14, 2015, 17:20:34 pm от Freezy_Spurt »