13

» WarCraft 3 / Эффекты эмоций

Класс! Только :* нет почему-то. Симулятору жизни без любви не обойтись.
13

» StarCraft 2 / Объявлена стоимость русского SCII: WoL

Игра в онлайне это в первую очередь соревновательная игра, то есть участие в официальных ладерах, онлайн лигах/кубках (например ESL, Zotac cup), пиратки для нищебродов школьников или просто для тех кто не ценит себя/свое время
Ну повесят вас на доске почёта. Вам приятно? А я просто ради удовольствия играю.
13

» WarCraft 3 / cJass - дополнение к языку JASS

if (a == b)then
  if ( a == 6 )
    if ( a == j )
      functakes3( 1 , 7 , 9 )
    else
      functakes3( 1 , 7 , 0 )
    endif
  else
    if ( a == j )
      functakes3( 1 , 8 , 9 )
    else
      functakes3( 1 , 8 , 0 )
    endif
  endif
else
  if ( a == 6 )
    if ( a == j )
      functakes3( 2 , 7 , 9 )
    else
      functakes3( 2 , 7 , 0 )
    endif
  else
    if ( a == j )
      functakes3( 2 , 8 , 9 )
    else
      functakes3( 2 , 8 , 0 )
    endif
  endif
endif
Надеюсь я не ошибся.
В твоём варианте на каждый тернар надо по одной переменной.
И для этой переменной надо знать тип.
В моём варианте препроцессор переписывает строку несколько раз.
В любом случае все условия и функции считаются столько раз, сколько нужно.
И не надо переменных (кроме одного только случая, только одной и одного типа).
13

» WarCraft 3 / cJass - дополнение к языку JASS

NoSilence:
А если так:
functakes3(a == b ? 1 : 2, a == 6 ? 7 : 8, a == j ? 9 : 0)
в результате получаем 7 условий
Нет, условий 3, но функция будет переписана 8 раз.
Вернее выполняться будут только 3.
Препроцессору это сделать без ошибок, чем человеку.
13

» WarCraft 3 / cJass - дополнение к языку JASS

Никаких проблем производительности, чистоты и поддержки ветвлений.
Даже переменной не надо.
expr( arg1 ? arg2 : arg3 )
if arg1 then
    expr( arg2 )
else
    expr( arg3 )
endif
Заметьте:
1.Все выражения считаются и используются не больше одного раза.
2.Продублировать выражение в разные строки для препроцессора не проблема.
3.Всё предельно формализовано. Осталось только внедрить.
Если видишь проблемы, пиши.
В твоей подписи старая версия. Обновляйся.
13

» WarCraft 3 / cJass - дополнение к языку JASS

ADOLF:
Да просто запоминать то, что было в определении и подставлять, если аргумент отсутствует.
и тогда полность забить на перегруз в будущем
А ещё будет будущее? С учётом появления эксперименталього редактора галакси.
А что, так тяжело диезы считать отдельно от фигурных скобок?
честно говоря тяжеловато, и связано это с методом работы с кодом
Плохо. Такой метод передумывать надо. (не в обиду)
о файловом импортере
Кто это?
А как насчёт ~ вместо lambda?
Van_Damm:
Тернарный оператор это бяка --- мы ведь вроде это уже обсуждали когда-то
Обсуждали, но с чего бы это бяка?
Ничего нерешаемого, преобразование определено. В чём проблемы?
Есть ещё идея switch->бинарное дерево, но сомневаюсь я...
XimikS:
лучше контроль типов
Он давно хочет, но...
13

» WarCraft 3 / cJass - дополнение к языку JASS

ADOLF:
аргументы по умолчанию - хз, нужны сигнатуры фций и типы, даже незнаю,
Да просто запоминать то, что было в определении и подставлять, если аргумент отсутствует.
Даже просто без распознавания типов, просто при недостаточном количестве аргументов.
А может ещё и когда две запятые в аргументах подряд :)
что до услвной компиляции, возможны костыли
это конечно не так елегантно и однозначно
А что, так тяжело диезы считать отдельно от фигурных скобок?
Так же хотелось бы знать, не появилось ли у тебя желание сделать таки тернарный оператор?
я постараюсь учесть свои ошибки в компиляторе для ск2
Ещё нет редактора, нет инструмента для встраивания в него своего препроцессора...
13

» WarCraft 3 / DotA 6.74c

На что-то даст, а на что-то нет.
SC2 не идеален. Но всё равно главное - творчество.
Мне лично WC нравится своей магичностью а какие модели будут включены в СК2 ещё неизвестно. Редактора пока нет.
Насчёт доты: не могу скачать ни с одного сервера.
Даже список изменений прочитать не могу.
Это так только у меня?
13

» WarCraft 3 / cJass - дополнение к языку JASS

ADOLF:
боюсь это не лечиться. вы бы могли приверсти мне код,
#if I_HAVE_SOME_LIB
    if( some_lib_condition()){ 
#else
    if( default_condition() ){
#endif
        some_actions()
    }
#if DO_IN_CYCLE
    while(counter--){
#endif
        action()
#if DO_IN_CYCLE
    }
#endif
Может диезы вообще с фигурными скобками не путать? Всё таки директивы, а не сокращения.
И вообще, чем на галакси без редактора заглядываться, может порадуешь нас значениями по умолчанию или тернарным оператором?
typename funcname(type var=subst_expression,...){
    actions()
}
...
 other_func( funcname(some_arg) , funcname() )
=>
 other_fuch( funcname(some_arg) , funcname(subst_expression) )
Линкольн, укажи версию хелпера. Может стоит обновиться?
13

» WarCraft 3 / Муталиск

Вроде только дрона и банелинга видел ещё.
Что, других просто не выложили?
Зерлинг и гидралиск есть близовские.
13

» WarCraft 3 / cJass - дополнение к языку JASS

            //   А
if (true)
    a()
    b()
endif    // останется?

           // или только
if (true) then
    a()
    b()
endif    // ?
13

» WarCraft 3 / cJass - дополнение к языку JASS

Следим, следим.
А что за проблема с ифами была?
И как-то там отступы делать можно, или это только вы с ван-дамом можете?
13

» WarCraft 3 / cJass - дополнение к языку JASS

Адик то молодец, да вот вряд ли он за контроль типов возьмётся. :(
13

» WarCraft 3 / cJass - дополнение к языку JASS

Векс всё обещает сделать контроль типов, да никак.
Адик и не обещает.
13

» WarCraft 3 / cJass - дополнение к языку JASS

function в любом случае не идентификатор.
А как использовать переменные типа code кроме nothing() и boolean() я не знаю.
Да и судя по тому, что все молчат это невозможно.
Так что эти ограничения вполне естественные.
13

» WarCraft 3 / cJass - дополнение к языку JASS

Может я чего пропустил, но пока были только define и include.
Не считая диезов, конечно.
А lambda имеет гораздо больше шансов встретиться как нормальное имя.
ForGroup(g,function nothing(){DoNothing();}) тоже сложнее lambda?
Хотелось бы взглянуть на применение анонимных функций кроме nothing() и boolean().
13

» WarCraft 3 / cJass - дополнение к языку JASS

То есть тип со скобками в аргументах функции отловить не удаётся?
И использовать вместо "lambda" слово "function" тоже?
Ведь Векс неспроста отказывается вводить ключевые слова.
Всегда есть шанс в чьей-то работе нарваться на переменную "lambda".
Возможно, достаточно отлавливать только "boolexpr()" и "nothing()".
13

» WarCraft 3 / cJass - дополнение к языку JASS

Если анонимку ставить непосредственно перед использующей функцией, проблем с именами быть не должно.
было
library A requires TimerUtils
{
    #include "cj_types.j"

    struct A
    {
        static thistype create()
        {
            thistype this=thistype.allocate()
            timer t=NewTimer()
            SetTimerData(t,this)
            TimerStart(CreateTimer(),1.,false,lambda void()
            {
                thistype this=GetTimerData(GetExpiredTimer())
            })
            return this
        }
    }
}
стало
library A requires TimerUtils
{
struct A
{
nothing anon_func_name_here()
{
thistype this=GetTimerData(GetExpiredTimer())
}
static thistype create()
{
thistype this=thistype.allocate()
timer t=NewTimer()
SetTimerData(t,this)
TimerStart(CreateTimer(),1.,false,function anon_func_name_here)
return this
}
}
}
Только ведь Векс там ещё с переменными крутит.
И может мне кто-нибудь объяснить, на кой чорт эта лямбда? Неужели нельзя реагировать на имя типа со скобкой или хотя бы слово function?
13

» WarCraft 3 / DotA 6.74c

Шапка - эффект от аэгиса. Плюс на всех курицахю Включая пуджа и гоблинов :)
13

» WarCraft 3 / cJass - дополнение к языку JASS

Я, конечно, понимаю, что Адольф делает, что хочет, и чего нет у Векса, но...
Вот Векс объявил, что параметры по умолчанию в vJass планируются через слово defaults.
А мне хочется через равно:
unit LinkedUnit(integer tag1=GetHandleId(GetExpiredTimer()), integer tag2=0){
    return GetStoredUnit(Hash,tag1,tag2)
}