Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Массивы

  1. #1
    Аватар для Android
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2021
    Сообщений
    5
    Репутация:
    0 ±

    Массивы

    Как можно заполнить -1 трехмерный массив?
    Вот одномерный:
    PHP код:
    new array[10] = { -1, ... }; 
    Вот двумерный:
    PHP код:
    new array[10][20] = { { -1, ... }, ... }; 
    Последний раз редактировалось Android; 31.01.2021 в 19:29.

  2. #2
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±
    1. new array1[5][5] = {{0, ...}, {2, ...}, ...}; // прогрессия с шагом 2
    2. new array2[5][5] = {{-1, ...}, ...}; // все значения равны -1
    3. new array3[10] = {-1, ...}; // все значения будут равны -1
    4. new array4[10] = {0, 1, ...}; // все значения будут от 0 до 9 (прогрессия)
    5. new array5[10] = {1, 4, ...}; // та же прогрессия, только с шагом 3
    6.  
    7. new array3[5][5][5] = {
    8.  
    9. {{-1, ...}, ...},
    10. {{-1, ...}, ...},
    11. {{-1, ...}, ...},
    12. {{-1, ...}, ...},
    13. {{-1, ...}, ...}
    14. };
    Последний раз редактировалось punkochel; 31.01.2021 в 19:23.

  3. 2 пользователя(ей) сказали cпасибо:
    oukibt (31.01.2021) Seviel (01.02.2021)
  4. #3
    Аватар для Android
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2021
    Сообщений
    5
    Репутация:
    0 ±
    А трехмерный?

  5. #4
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±
    Пока-что не сталкивался, но сейчас попробую что-то соорудить. Пока-что вариант есть, но он скорее относится к ручному заполнению массива (в первом сообщении)

  6. #5
    Аватар для Android
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2021
    Сообщений
    5
    Репутация:
    0 ±
    Попробовал сделать так:
    PHP код:
    new inv[10][10][10] = { { { -1, ...}, ...}, ... };
    inv[0][0][0] = 23
    Но когда присваиваю значение, то возникает ошибка:
    Код HTML:
    error 001: expected token: "{", but found "..."
    error 001: expected token: "}", but found ";"

  7. #6
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±
    Цитата Сообщение от Android Посмотреть сообщение
    Попробовал сделать так:
    PHP код:
    new inv[10][10][10] = { { { -1, ...}, ...}, ... };
    inv[0][0][0] = 23
    Но когда присваиваю значение, то возникает ошибка:
    Код HTML:
    error 001: expected token: "{", but found "..."
    error 001: expected token: "}", but found ";"
    Логика заполнения верная, но почему-то выдает ошибку. Как вариант, если массив небольшой, то можно использовать пример из моего ответа. Пока-что ничего в голову не идет, может быть кто знающий еще предложит варианты решений

  8. #7
    Аватар для Android
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2021
    Сообщений
    5
    Репутация:
    0 ±
    Цитата Сообщение от punkochel Посмотреть сообщение
    Логика заполнения верная, но почему-то выдает ошибку. Как вариант, если массив небольшой, то можно использовать пример из моего ответа. Пока-что ничего в голову не идет, может быть кто знающий еще предложит варианты решений
    Ну в ручную не вариант.

  9. #8
    Аватар для Pro_Coder
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.10.2020
    Сообщений
    59
    Репутация:
    2 ±
    Можно так в OnGameModeInit
    PHP код:
    #define MAX_INV_COUNT 10

    for (new iMAX_INV_COUNTi++) {
        for (new 
    jMAX_INV_COUNTj++) {
            for (new 
    nMAX_INV_COUNTn++) {
                
    inv[i][j][n] = -1;
            }
        }


  10. #9
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±
    Цитата Сообщение от Pro_Coder Посмотреть сообщение
    Можно так в OnGameModeInit
    PHP код:
    #define MAX_INV_COUNT 10

    for (new iMAX_INV_COUNTi++) {
        for (new 
    jMAX_INV_COUNTj++) {
            for (new 
    nMAX_INV_COUNTn++) {
                
    inv[i][j][n] = -1;
            }
        }

    Если и пытаться использовать данный вариант, то лучше наверное так:
    1. new array[5][10][15];
    2. for(new i, j, k; i < sizeof(array); i++) {
    3.  
    4. for(j = 0; j < sizeof(array[]); j++) {
    5.  
    6. for(k = 0; k < sizeof(array[][]); k++) {
    7.  
    8. array[i][j][k] = -1;
    9. }
    10. }
    11. }

  11. Пользователь сказал cпасибо:
    20th century (01.02.2021)
  12. #10
    Аватар для Pro_Coder
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.10.2020
    Сообщений
    59
    Репутация:
    2 ±
    PHP код:
        new array[5][10][15];
        for(new 
    jksizeof(array) - 1!= -1i--) {
            for(
    sizeof(array[]) - 1!= -1j--) {
                for(
    sizeof(array[][]) - 1!= -1k--) {
                    array[
    i][j][k] = -1;
                }
            }
        } 

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •