Как сделать?
…
ejikplains,
Это мы знаем, но как это использовать?
oleksandrigo,
debug=1 используй, пока разрабатываешь игру.
debug=0, когда делаешь релиз.
При debug=0 сохранки от старых версий игры работать не будут.
d[0]=1
d[1]=2
d[2]=1
d[3]=4
d[4]=2
m=5
i=0
:gen
if i<m:
if d['<<i>>']=0:
set gFort['<<i>>']=2
elseif d['<<i>>']=1:
set gFort['<<i>>']=rand(0,1)
elseif d['<<i>>']=0
set gFort['<<i>>']=1
elseif d['<<i>>']=3:
set пFort['<<i>>']=rand(1,2)
elseif d['<<i>>']=4:
set gFort['<<i>>']=rand(1,2)
end
set i=i+1
jump 'gen'
end
Почему это не работает?! Любую значение из массива “d” алгоритм считает нулём! Почему?
Последний из Гаяр,
Spoiler
d[0] = 1
d[1] = 2
d[2] = 3
d[3] = 4
d[4] = 5
i = 0
:gen
if i < ARRSIZE('d') - 1:
if d[i] = 1:
gFort[i] = 123
elseif d[i] = 2:
gFort[i] = 234
elseif d[i] =2 :
gFort[i] = 345
elseif d[i] = 3:
gFort[i] = 456
elseif d[i] = 4:
gFort[i] = 567
end
d[i]
gFort[i]
i += 1
jump 'gen'
end
Короче вот. Я его переделал немного убрал ранды(для себя, а ты можешь вернуть)
Я плохо помню что именно я изменил но вроде проблемы была в последовательности. Типо было так
...
i+=1
gFort[i]
d[i]
..
и оно потом прыгало вверх.
Так вот оно сначала изменяло мне/тебе i а потом только вывод. Но вывод был тех знач которые еще не были заданы.
Я же i+=1 поставил под
gFort[i]и d[i]ps а еще не нужно делать так [’<<i>>’] хватит простого [i]
oleksandrigo,
Вроде, работает. Спасибо.
Остаётся вопрос:
Что значит эта запись:
d[i]
gFort[i]
i+=1
?
Для чего так было сделано?
И почему без этого не работает?
Разобрался!
Спасибо куспу за мозголомство и тучи гнева!
Дело в пробелах :(
<<facepalm>>
Последний из Гаяр,
Это просто вывод массива с индексом i
oleksandrigo,
А без этого вывода никак?
Последний из Гаяр,
Почему никак? Это просто чтобы понять работает или нет. Можешь даже убрать, проблем не будет.
Когда просто пишешь название переменной, то оно покажет ее значение.
Последний из Гаяр,
Взгляни на свой код. Задаёшь значения массива с числовыми индексами:
d[0]=1
d[1]=2
d[2]=1
d[3]=4
d[4]=2
проверяешь значения массива с текстовыми индексами:
if d['<<i>>']=0:
Последний из Гаяр:
Спасибо куспу за мозголомство и тучи гнева!
Дело в пробелах
<<facepalm>>
в каких пробелах?
Aleks Versus,
Понятия не имею, поставил пробелы возле знаков “=“ и всё заработало.
В смысле текстовыми? А как по другому индекс из переменных мне задать?
До этого так делал, и вроде всё работало
Последний из Гаяр,
То есть ты не менял ‘<<i>>’ на i?
oleksandrigo,
Нет не менял
Aleks Versus:
oleksandrigo,
$helmet — это $helmet[0]. Если ты инициализировал сначала $helmet[’null’], то $helmet[’null’] — это тоже $helmet[0].В общем. Текстовые индексы массивов соотносятся с числовыми индексами в порядке инициализации. Запись $helmet означает, что ты делаешь запись в ячейку массива под номером 0.
Проверяется просто:
$helmet['null'] = 'шелом' $helmet[0]
Вот возможная причина почему оно работает.
Но то как ты делать неправильно. Ты как бы другой индекс даёшь и он строковый и только из-за того что идет такая последовательность он вообще работает.
oleksandrigo,
Странно , мне Аджента писала что индескы массивов из переменных задаются так
массив[’<<переменная>>’]= значение
.
До этого вроде все работало.
А как точно тогда задать массиву числовой индекс из переменной?