Всем привет!!! При большом скрипте Кибор не может ни скомпилировать его, ни произвести, Кибор просто "Не отвечает" в диспетчере задач, после минут 10 "Out of Memory". Пробовал разные настройки в трансляции - не помогает....
Думал дело в моей старенькой машине с 1гб оперативке, но нет, попробовал на 4гб, та же хрень. Что можете посоветовать сделать???
Скрипт состоит из функций, штук 50 и множества условий..
1. DiaVol - 09 Апреля, 2018 - 12:04:25 - перейти к сообщению
2. Dantes3000 - 09 Апреля, 2018 - 15:39:53 - перейти к сообщению
Судя из информации - проблема прям точно не в 50 функциях и множества условий?
3. Zireael - 09 Апреля, 2018 - 17:38:20 - перейти к сообщению
Без кода ничем не помочь.
Вы написали кучу функций ни разу не запуская скрипт? Или с какого-то момента перестал запускаться?
Если не хотите выкладывать код, то для начала оставьте штук 10 функций и попробуйте запустить, потом 20 и т. д., чтобы понять с какого момента перестаёт работать.
Вы написали кучу функций ни разу не запуская скрипт? Или с какого-то момента перестал запускаться?
Если не хотите выкладывать код, то для начала оставьте штук 10 функций и попробуйте запустить, потом 20 и т. д., чтобы понять с какого момента перестаёт работать.
4. DiaVol - 09 Апреля, 2018 - 22:08:00 - перейти к сообщению
Все функции запускаются и работают, дело не в них...(для просмотра ссылки Вам необходимо авторизоваться)
5. Budni - 09 Апреля, 2018 - 23:30:23 - перейти к сообщению
У меня та же проблема, скрипты с большим кол-ом функций выдают "Out of Memory" у меня это решилось добавлением указателя на контрл. Может и вам поможет
6. Zireael - 10 Апреля, 2018 - 05:38:32 - перейти к сообщению
Меняйте структуру скрипта. У вас куча одинаковых блоков и функций. Отличаются они только координатами, которые используются в Corner. Координаты передавайте в функцию, тогда можно избавиться от кучи не нужных меток.
Тоже самое:
Часть кода (Отобразить)
Тоже самое:
code (Отобразить)
7. DiaVol - 12 Апреля, 2018 - 12:14:50 - перейти к сообщению
Zireael , Благодарю за подсказу... А как мне переход с метки 1 на блок сделать? Получится условие в условии???
1:
viborstavki();
if(v==8)goto 1a;
if(v==11)goto 1b;
if(v==14)goto 1c;
if(v==17)goto 1d;
if(v==20)goto 1e;
if(v==23)goto 1f;
if(v==26)goto 1g;
if(v==29)goto 1h;
if(v==32)goto 1k;
else goto 1z;
function viborstavki()
{
int a[10];
a[0]=5;
a[1]=8;
a[2]=11;
a[3]=14;
a[4]=17;
a[5]=20;
a[6]=23;
a[7]=26;
a[8]=29;
a[9]=32;
int r=rand(0,10);
v=a[r];
}
1:
viborstavki();
if(v==8)goto 1a;
if(v==11)goto 1b;
if(v==14)goto 1c;
if(v==17)goto 1d;
if(v==20)goto 1e;
if(v==23)goto 1f;
if(v==26)goto 1g;
if(v==29)goto 1h;
if(v==32)goto 1k;
else goto 1z;
function viborstavki()
{
int a[10];
a[0]=5;
a[1]=8;
a[2]=11;
a[3]=14;
a[4]=17;
a[5]=20;
a[6]=23;
a[7]=26;
a[8]=29;
a[9]=32;
int r=rand(0,10);
v=a[r];
}
8. Kibor - 12 Апреля, 2018 - 16:28:26 - перейти к сообщению
Это проблема Кибор. Проблема в не рассчитанности на такое количество ифов и переходов. то есть на метод простого задания условия от ситуации.
Используйте массивы. Создайте алгоритм.
Данный код можно сократить в десятка раз.
Используйте массивы. Создайте алгоритм.
Данный код можно сократить в десятка раз.
9. Zireael - 12 Апреля, 2018 - 18:33:12 - перейти к сообщению
Цитата:
А как мне переход с метки 1 на блок сделать?
Переходы по goto вообще не нужны. Разве что вернуться в начало или выйти из цикла, т. к. отсутствует break.
На раздумье:
CODE:
int a[2][3];
int x[2][3];
a[0][0]=655; a[0][1]=330; a[0][2]=685;
a[1][0]=685; a[1][1]=345; a[1][2]=720;
x[0][0]=5; x[0][1]=2; x[0][2]=4;
x[1][0]=11; x[1][1]=8; x[1][2]=10;
int r=rand(0,2);
messagebox("r равно "+format(r));
messagebox(format(a[r][0])+" "+format(a[r][1])+" "+format(a[r][2]));
messagebox(format(x[r][0])+" "+format(x[r][1])+" "+format(x[r][2]));
int x[2][3];
a[0][0]=655; a[0][1]=330; a[0][2]=685;
a[1][0]=685; a[1][1]=345; a[1][2]=720;
x[0][0]=5; x[0][1]=2; x[0][2]=4;
x[1][0]=11; x[1][1]=8; x[1][2]=10;
int r=rand(0,2);
messagebox("r равно "+format(r));
messagebox(format(a[r][0])+" "+format(a[r][1])+" "+format(a[r][2]));
messagebox(format(x[r][0])+" "+format(x[r][1])+" "+format(x[r][2]));
10. DiaVol - 15 Апреля, 2018 - 01:57:23 - перейти к сообщению
Хочу данный код в функцию упаковать.. Как мне номер метки к переходу сделать?
Если метка 1 все goto принимают значение 1, если 2 то 2 и т.д.
1:
viborstavki();
if(v==8)goto 1a;
if(v==11)goto 1b;
if(v==14)goto 1c;
if(v==17)goto 1d;
if(v==20)goto 1e;
if(v==23)goto 1f;
if(v==26)goto 1g;
if(v==29)goto 1h;
if(v==32)goto 1k;
else goto 1z;
Если метка 1 все goto принимают значение 1, если 2 то 2 и т.д.
1:
viborstavki();
if(v==8)goto 1a;
if(v==11)goto 1b;
if(v==14)goto 1c;
if(v==17)goto 1d;
if(v==20)goto 1e;
if(v==23)goto 1f;
if(v==26)goto 1g;
if(v==29)goto 1h;
if(v==32)goto 1k;
else goto 1z;