Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Переменные названия переменных

Страниц (1): [1]
 

1. Chick - 25 Июня, 2020 - 20:50:56 - перейти к сообщению
Приветствую.
Давненько я не задалбывал вас своими вопросами - стараюсь разобраться самостоятельно ))
Но вот возникла такая мысля - а что если ради упрощения кода сделать перебирать имена переменных в цикле?
Поясню. Есть переменные:
CODE:

int var1 = 11;
int var2 = 22;
int var3 = 33;


и есть некий код, одинаковый для них всех с той лишь разницей, что в нем используются разные переменные.

CODE:

messagebox(format(var1));
messagebox(format(var2));
messagebox(format(var3));


Можно ли сделать как-то примерно так:

CODE:

for(n=1;n<4;n++)
{
messagebox(format(varn)); //как то добавить счетчик к имени переменной
}


В некоторых случаях подобная конструкция значительно сократила бы количество строк кода...
2. Adomb - 25 Июня, 2020 - 22:44:03 - перейти к сообщению
Используйте массивы. Улыбка
3. Chick - 26 Июня, 2020 - 00:24:12 - перейти к сообщению
 Adomb пишет:
Используйте массивы. Улыбка

Круто. А каким образом? Массивы массивов?
4. Nikanr - 26 Июня, 2020 - 02:05:23 - перейти к сообщению
 Chick пишет:
А каким образом


CODE:
int a[3]={1,2,3};

for(int i=0; i<3; i++){

messagebox(a[i]);

}


А для одинакового кода лучше использовать функции, например

CODE:
int a[3]={1,2,3};

for(int i=0; i<3; i++){

bla(a[i]);

}
function bla(int b){

messagebox(b+3);

}
5. Chick - 26 Июня, 2020 - 02:52:58 - перейти к сообщению
Бро, да это для меня не секрет.
И массивы я использую и функции.

Поясню - у меня есть N видов картинок. И M их подвидов. Скажем, они называются

car_18L_1, car_18L_2, и т.д.
car_20L_1, car_20L_2, и т.д.
car_25L_1, car_25L_2, и т.д.
bus_60L_1, bus_68L_2 и т.д.

в общем, таких видов/подвидов целая куча.

и каждую эту картинку нужно сначала loadimage, а потом и findimage...
И как в таком случае поступить?

Сделать 5-ти мерный массив плюс в цикле еще и проверять вид картинки (ибо он текстовый)?
Может быть куда проще сделать так, как я изначально спросил?

CODE:
string transporttype[2] = {"car", "bus"};
int volume[100] = {13,15,18,20,25,60};
string fullname;

for(int n1=0; n1<100; n1++)
{
for(int n2=0; n2<100; n2++)
{
for(int n3=0; n3<100; n3++)
{
fullname = transporttype[n1]+"_"+format(volume[n2])+"L_"+format(n3);

// а далее как-то нужно прописать findimage с использованием fullname[0][0]
// и так и эдак получается пятимерный массив...
// но так было бы гораздо удобнее
// чем изначально объявлять массив и путаться в цифрах-индексах, забывая,
// где у меня car, где bus, а где троллейбус...

}
}
}
6. Zireael - 26 Июня, 2020 - 03:43:29 - перейти к сообщению
 Цитата:
Сделать 5-ти мерный массив

findimage работает только с двух и трехмерными массивами.
Либо создавать отдельные 3-х мерные, либо псевдо 4-х, 5-ти мерные используя индексацию в 3-х мерном массиве.
7. Chick - 26 Июня, 2020 - 03:54:28 - перейти к сообщению
 Zireael пишет:
 Цитата:
Сделать 5-ти мерный массив

findimage работает только с двух и трехмерными массивами.
Либо создавать отдельные 3-х мерные, либо псевдо 4-х, 5-ти мерные используя индексацию в 3-х мерном массиве.


Понял. Спасибо!
(Добавление)
 Zireael пишет:

findimage работает только с двух и трехмерными массивами.
Либо создавать отдельные 3-х мерные, либо псевдо 4-х, 5-ти мерные используя индексацию в 3-х мерном массиве.


Вопрос то заключался в другом. Можно ли динамически менять имена переменных в функциях и операторах?
8. Zireael - 26 Июня, 2020 - 04:35:46 - перейти к сообщению
 Цитата:
Можно ли динамически менять имена переменных

Такого нельзя нигде.
9. Chick - 27 Июня, 2020 - 01:58:00 - перейти к сообщению
 Zireael пишет:
 Цитата:
Можно ли динамически менять имена переменных

Такого нельзя нигде.

Можно ))
Кибор ведь не язык программирования, а среда разработки, а в ней можно реализовать всё, что душа пожелает ))
Как пример -
Скрытый текст:
Для просмотра Вам необходимо авторизоваться и оставить не менее 2000 сообщений
. Там такое возможно и это очень удобно!

Powered by ExBB FM 1.0 Final