Кибор » Кибор - Интегрированная среда разработки ботов » Отчет о ошибках » Ошибка

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

1. Albaz - 30 Августа, 2014 - 00:25:02 - перейти к сообщению
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
2. Kibor - 30 Августа, 2014 - 01:25:06 - перейти к сообщению
?
Ну ошибка... Если увижу код, то могу подсказать в чем именно...
3. Albaz - 30 Августа, 2014 - 10:09:27 - перейти к сообщению
раз уж код... Прошу Вас, Kibor и прочих ударников ботоводства дать оценку коду.
Раньше все писал с goto. Сейчас осваиваю функции, потому делаю упор на них.
В общем, как можете охарактеризовать стиль, какие замарочки, что можно написать яснее, проще...
Удалено......
(Добавление)
КАРОЧЕ НЕ МОГУ ВЫЛОЖИТЬ = ТО БОЛЬШОЕ СООБЩЕНИЕ, ТО НЕ МОГУ ОТКОРРЕКТИРОВАТЬ
(Добавление)(для просмотра ссылки Вам необходимо авторизоваться)
как альтернатива - 6.84 KB
(Добавление)
прошу удалить куски кода
4. Kibor - 30 Августа, 2014 - 10:56:48 - перейти к сообщению
Ну в принципе функции более менее верно использованы. только не надо в каждой функции загружать картинки. сделать для этого одну функцию. переменные в начале объявить в код а не в функции.


тут переменные

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

тут цикл бота вызов функций блоков:
a:
1функция();
2функция();
...
goto a;


тут сами функции

разбивать любое сложное действие на функции (блоки) и с них строить как из кирпичей

Ошибку тут я не могу найти.
5. Albaz - 30 Августа, 2014 - 11:29:36 - перейти к сообщению
походу баг был со скобками - { либо одна лишняя, либо не достает }
CODE:
function timer(string xtimer);
{
//messagebox("Timer");
if(n>50)
{
exit(); // n>50 - показатель серьезной ошибки => выход
}
else
{
sleep(rand(500,1800));
n++;

if(xtimer == "tnachali")
{
nachali();
}

if(xtimer == "tvhodvlike")
{
vhodvlike();
}

if(xtimer == "tispolnvlike")
{
ispolnvlike();
}


if(xtimer == "tlovvstupi")
{
lovvstupi();
}

if(xtimer == "tpodtverdilike")
{
podtverdilike();
}



else exit();
}

6. Kibor - 30 Августа, 2014 - 11:40:38 - перейти к сообщению
 Albaz пишет:
function timer(string xtimer);
{
//messagebox("Timer");
if(n>50)
{
exit(); // n>50 - показатель серьезной ошибки => выход
}
else
{
sleep(rand(500,1800));
n++;
}тут
if(xtimer == "tnachali")
{
7. Albaz - 30 Августа, 2014 - 11:50:04 - перейти к сообщению
не надо в каждой функции загружать картинки.
Почему? Ради читабельности или быстродействия?
Может это не верно, но я думаю - к чему загружать ВСЕ в начале, если оно может не понадобиться (сеть оборвется)? Хотя походу весь скрипт загружается в память сразу и лишний раз при очередном обращении к функции перезагружается то, что и так загружено (картинки)?
И походу так кажется удобнее - на лету все ляпаешь, без сортировки, по мере требования.)
вызов функции загрузки картинок - то же не понимаю. Зачем это дело совершать в функции?
Почему бы не свалить картинки в одну "кучу" с объявляемыми переменными?
Делитесь секретами))
8. Kibor - 30 Августа, 2014 - 12:20:46 - перейти к сообщению
Ради удобства и быстродействия.
Зачем сто раз загружать если функция выполнится 100 раз??

загрузил все сразу и пользуй.

вот примерно так

 Цитата:
int a[20][20];
int b[20][20];
int x, y;
int n;

if (load_image()==-1){messagebox ("ошибка загрузки картинки"); goto er;}

l:
f1();
f2();
n=f3();
if (n==1)messagebox ("a");
if (n==2)messagebox ("b");
goto l;





er:;

function f1()
{
if (findimage(1, #a[0][0], 0, #x, #y, 0, 0, 1366, 768, -1)==1)
{
messagebox ("a1");
}
if (findimage(1, #b[0][0], 0, #x, #y, 0, 0, 1366, 768, -1)==1)
{
messagebox ("b1");
}
}

function f2()
{
if (findimage(1, #a[0][0], 0, #x, #y, 0, 0, 1366, 768, -1)==1)
{
messagebox ("a2");
}
if (findimage(1, #b[0][0], 0, #x, #y, 0, 0, 1366, 768, -1)==1)
{
messagebox ("b2");
}
}

function f3()
{
if (findimage(1, #a[0][0], 0, #x, #y, 0, 0, 1366, 768, -1)==1)return 1;
if (findimage(1, #b[0][0], 0, #x, #y, 0, 0, 1366, 768, -1)==1)return 2;
return 0;
}

function load_image()
{
if (loadimage (#a[0][0], "C:\a.bmp")<1) return -1;
if (loadimage (#b[0][0], "C:\b.bmp")<1) return -1;
return 1;
}
9. Albaz - 31 Августа, 2014 - 14:53:56 - перейти к сообщению
Не пойму с параметрами возврата.
Хочу что бы вернула несколько величин.
Или хотя бы нечто такого:
CODE:
obsch_schet(1,2,3);
messagebox(time);

function obsch_schet(int time, int shag, int osh){
return time;
}
10. Kibor - 31 Августа, 2014 - 15:39:18 - перейти к сообщению
Не верно.
Есть локальные, есть глобальные переменные.
Локальные то что объявлены в параметрах функции или в теле. Как тут.
Они видны исключительно в функции. Вот поэтому и не видно time вне (messagebox(time);)

А глобальные - видны везде.

Подробно -(для просмотра ссылки Вам необходимо авторизоваться)
А вот вообще верно вот
 Цитата:
messagebox(obsch_schet(1,2,3));
function obsch_schet(int time, int shag, int osh)
{
return time;
}


Несколько переменных вернуть нельзя. Только так
 Цитата:
int time, shag, osh;
obsch_schet();
messagebox(time);
messagebox(shag);
messagebox(osh);
function obsch_schet()
{
time=5;
shag=2;
osh=52;
}

Powered by ExBB FM 1.0 Final