Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±

    Как правильнее

    Нужно написать функцию, которая возвращает название ранга игрока по его организации и подразделении, попытался сделать разными способами, но некоторые меня смущают.
     Способ 1
    PHP код:
    stock GetRangName(name[], orgidmemberidranid)
    {
        if(
    orgid == 1)
        {
            if(
    memberid == 1)
            {
                switch(
    rangid)
                {
                    case 
    1name "Уборщик";
                    case 
    2name "Помошник";
                    case 
    3name "Редактор";
                    case 
    4name "...";
                    case 
    5name "Начальник";
                }
            }
            else if(
    memberid == 2)
            {
                
    // ...
            
    }
        }
        else if(
    orgid == 2)
        {
            
    // код аналогичный коду выше
        
    }
        return 
    1;



     Способ 2
    PHP код:
    stock GetRangName(name[], orgidmemberidranid)
    {
        if(
    orgid == 1)
        {
            if(
    memberid == 1)
            {
                switch(
    rangid)
                {
                    case 
    1strmid(name"Уборщик"0strlen("Уборщик"), sizeof(name));
                    case 
    2strmid(name"Помошник"0strlen("Помошник"), sizeof(name));
                    case 
    3strmid(name"Редактор"0strlen("Редактор"), sizeof(name));
                    case 
    4strmid(name"..."0strlen(".."), sizeof(name));
                    case 
    5strmid(name"Начальник"0strlen("Начальник"), sizeof(name));
                }
            }
            else if(
    memberid == 2)
            {
                
    // ...
            
    }
        }
        else if(
    orgid == 2)
        {
            
    // код аналогичный коду выше
        
    }
        return 
    1;



    Какой из них более лучше? Буду рад, если предложите свой вариант

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

    Статус
    Оффлайн
    Регистрация
    23.12.2013
    Адрес
    Омск
    Сообщений
    196
    Репутация:
    22 ±
    Статический массив с названиями рангов мне кажется был бы куда удобнее и правильнее.



    Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку
    Мартин Фаулер


    Skype
    profan99
    VK
    click




  3. #3
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Цитата Сообщение от Profyan Посмотреть сообщение
    Статический массив с названиями рангов мне кажется был бы куда удобнее и правильнее.
    У меня 13 организаций, в 1-5 из них входят 3 подразделения (в каждом подразделении разные ранги), в 6-13 подразделений нет. Это надо трёхмерный массив как минимум делать, я просто не смогу не закосячить.

  4. #4
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Не бывает правильнее, бывает лучше для конкретной цели. Если перед тобой стоит цель добиться минимальной производительности, то 2 способ, если максимальной производительности - то тот, что назвал Profyan, а если тебе наплевать, то выбирай 1 способ.

    Цитата Сообщение от _lizard Посмотреть сообщение
    У меня 13 организаций, в 1-5 из них входят 3 подразделения (в каждом подразделении разные ранги), в 6-13 подразделений нет. Это надо трёхмерный массив как минимум делать, я просто не смогу не закосячить.
    Можно создать несколько двумерных.

  5. Пользователь сказал cпасибо:
    _lizard (09.08.2016)
 

 

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

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

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

Ваши права

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