Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#1153
Старый 18.04.2013, 19:42
  #1153
^
Nargott
 
Аватар для Nargott
📖
Регистрация: 09.05.2009
Адрес: Смоленск
Сообщения: 1584
Регистрация: 09.05.2009
Адрес: Смоленск
Сообщения: 1584
По умолчанию
Re: Скрипты

RedHeavenHeroПочему "магических"?
Потому что в мире программирования использовать какие-то невнятные ("магические") цифры - дурной тон, затрудняющий чтение, понимание и изменение кода. Что такое 0? Что такое 1? Это никому не известно, и из контекста неясно. Другое дело - использование именованных констант, заранее собранных в отдельном месте (в данном случае, разрабы уже предоставили такие константы), где их при необходимости можно централизованно менять.

Исключением могут быть например счётчики, такие как total = total + 1, где единица обозначает минимальный шаг. В этом случае её роль всем очевидна, и потому она не считается "магической" в таком контексте.

RedHeavenHeroГде? К тому же игроки вне игры обозначаются 4.
Судя по мануалу:
PLAYER_NOT_IN_GAME -- Игрок вне игры
PLAYER_ACTIVE -- Игрок активен
PLAYER_WON -- Игрок победил
PLAYER_LOST -- Игрок проиграл
Обычно, в подобных списках константы пробегают значения от 0 и выше, т.е. значение 4, видимо, не соответсвует ни одной из констант, и, вероятно, обозначает игроков вне игры (опять-таки из-за "магических" цифр можно только строить предположения). Но я лично не проверял на практике.

Цифра 0 взята отсюда:
	n = n + (GetPlayerState(i) == 1 or 0)
Мне совершенно непонятно, что она здесь делает, а из-за отсутствия скобок, неясно даже, как будет выполняться сия конструкция, сначала проверка на равенство, а затем OR, или наоборот.
__________________
Разработчик Heroes 5.5 WarGame Edition.
Сайт проекта - пока неактивен
Автор Асимметричных шахмат
Разработчик Heroes 5.5 WarGame Edition.
Сайт проекта - пока неактивен
Автор Асимметричных шахмат
Nargott вне форума
Ответить с цитированием