Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Считывание цифр в фоне и дальнейшая работа с ними

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

1. lyvrik - 10 Ноября, 2023 - 14:47:02 - перейти к сообщению
Здравствуйте, накидал код по распознаванию чифр и их обновление, запускаю и вывожу их на экран но вместо того чтобы обновляться они застывают в начальном положении, конечно не о какой работе с ними после этого момента речь не идет. Подскажите, в чем моя ошибка?
CODE:

win W_Kib=window ("Игра" -1));
string Text_S;
string Text_P;
string Text_Str[100];
int K_Str;
int K_S;
int X_S[2000];
int Y_S[2000];
int X_Str[100];
int Y_Str[100];
int sX_S[2000];
int sY_S[2000];
double Cor_S[2000];
int Type_S[2000];
int Col_T0[1] = {0};
int Kol_F0[1] = {255};
int Screen[3000][3000];
int eCol_Kib, eX_Kib, eY_Kib;
getdisplay(eCol_Kib, eX_Kib, eY_Kib);

load_base();
Fun();

function Fun()
{
ReadText(2, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, 0, "Путь", #Text_S, #K_S, #X_S[0], #Y_S[0], #sX_S[0], #sY_S[0], #Cor_S[0], #Type_S[0], #K_Str, #Text_Str[0], #X_Str[0], #Y_Str[0], 0, 0, 1, 0, 40, 1, -1, -1, -1, 0, #Col_T0[0], 0, 0, #Kol_F0[0], 0, 0, 99, 886, 528, 957, 551, -1, 0);
ReadText(2, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, 0, "Путь", #Text_P, #K_S, #X_S[0], #Y_S[0], #sX_S[0], #sY_S[0], #Cor_S[0], #Type_S[0], #K_Str, #Text_Str[0], #X_Str[0], #Y_Str[0], 0, 0, 1, 0, 40, 1, -1, -1, -1, 0, #Col_T0[0], 0, 0, #Kol_F0[0], 0, 0, 99, 994, 528, 1051, 551, -1, 0);
textout(1, 500,500, Text_S+" "+Text_P, 1);
if(formatsn(Text_P)>=265);
{
goto KIB_13;
}
if(formatsn(Text_P)<=255);
{
goto KIB_12;
}
if(formatsn(Text_S)>=5415);
{
goto KIB_11;
}
if(formatsn(Text_S)<=5400);
{
goto KIB_10;
}
KIB_13: while(formatsn(Text_P)>255)
{
Key(1, W_Kib, 0, 68, "m", "Нажать", 100);
}
Key(1, W_Kib, 0, 68, "m", "Отпустить", 0);
KIB_12: while(formatsn(Text_P)<265)
{
Key(1, W_Kib, 0, 65, "m", "Нажать", 100);
}
Key(1, W_Kib, 0, 65, "m", "Отпустить", 0);
KIB_11: while(formatsn(Text_S)>5400)
{
Key(1, W_Kib, 0, 87, "m", "Нажать", 100);
}
Key(1, W_Kib, 0, 87, "m", "Отпустить", 0);
KIB_10: while(formatsn(Text_S)<5415)
{
Key(1, W_Kib, 0, 83, "m", "Нажать", 100);
}
Key(1, W_Kib, 0, 83, "m", "Отпустить", 0);
}
2. Zireael - 10 Ноября, 2023 - 16:43:31 - перейти к сообщению
 Цитата:
Подскажите, в чем моя ошибка?

 Цитата:
while(formatsn(Text_P)>255)
{
Key(1, W_Kib, 0, 68, "m", "Нажать", 100);
}

По сути это бесконечный цикл, т. к. значение переменной Text_P в нём не изменяется.
Например, распозналось число 300, в цикле нажимается клавиша, но в Text_P как было 300, так и осталось.
3. lyvrik - 11 Ноября, 2023 - 06:52:22 - перейти к сообщению
 Zireael пишет:
 Цитата:
Подскажите, в чем моя ошибка?

 Цитата:
while(formatsn(Text_P)>255)
{
Key(1, W_Kib, 0, 68, "m", "Нажать", 100);
}

По сути это бесконечный цикл, т. к. значение переменной Text_P в нём не изменяется.
Например, распозналось число 300, в цикле нажимается клавиша, но в Text_P как было 300, так и осталось.


А как сделать одноповторяющийся? Можно же как то указать количество повторений?
(Добавление)
Я попытался убрать while и оставить только IF но у меня вылетает код, никаких ошибок не пишет
CODE:

Fun();

function Fun()
{
loop()
{
ReadText(2, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, 0, "Путь", #Text_S, #K_S, #X_S[0], #Y_S[0], #sX_S[0], #sY_S[0], #Cor_S[0], #Type_S[0], #K_Str, #Text_Str[0], #X_Str[0], #Y_Str[0], 0, 0, 1, 0, 40, 1, -1, -1, -1, 0, #Col_T0[0], 0, 0, #Kol_F0[0], 0, 0, 99, 886, 528, 957, 551, -1, 0);
ReadText(2, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, 0, "Путь", #Text_P, #K_S, #X_S[0], #Y_S[0], #sX_S[0], #sY_S[0], #Cor_S[0], #Type_S[0], #K_Str, #Text_Str[0], #X_Str[0], #Y_Str[0], 0, 0, 1, 0, 40, 1, -1, -1, -1, 0, #Col_T0[0], 0, 0, #Kol_F0[0], 0, 0, 99, 994, 528, 1051, 551, -1, 0);
textout(1, 500,500, Text_S+" "+Text_P, 1);
sleep(100);
if(formatsn(Text_P)>255);
{
Key(1, W_Kib, 0, 68, "m", "Нажать", 100);
Key(1, W_Kib, 0, 68, "m", "Отпустить", 0);
}
if(formatsn(Text_P)<265);
{
Key(1, W_Kib, 0, 65, "m", "Нажать", 100);
Key(1, W_Kib, 0, 65, "m", "Отпустить", 0);
}
if(formatsn(Text_S)>5400);
{
Key(1, W_Kib, 0, 87, "m", "Нажать", 100);
Key(1, W_Kib, 0, 87, "m", "Отпустить", 0);
}
if(formatsn(Text_S)<5415);
{
Key(1, W_Kib, 0, 83, "m", "Нажать", 100);
Key(1, W_Kib, 0, 83, "m", "Отпустить", 0);
}
}
4. Zireael - 11 Ноября, 2023 - 08:10:14 - перейти к сообщению
Не хватает закрывающей фигурной скобки. В редакторе кибор слева нумерация скобок.
 Цитата:
if(formatsn(Text_P)<265);

Точки с запятой не должно быть.
5. lyvrik - 11 Ноября, 2023 - 08:13:35 - перейти к сообщению
 Zireael пишет:
Не хватает закрывающей фигурной скобки. В редакторе кибор слева нумерация скобок.
 Цитата:
if(formatsn(Text_P)<265);

Точки с запятой не должно быть.


Спасибо, это я убрал и поставил скобку но от вылета оно не помогло. Из за чего может быть вылет программы?
6. Zireael - 11 Ноября, 2023 - 08:28:22 - перейти к сообщению
 Цитата:
Из за чего может быть вылет программы?

Причин полно. Нужен весь код, возможно ещё есть ошибки.
Вылетает сразу или через какое-то время?
7. lyvrik - 11 Ноября, 2023 - 08:33:32 - перейти к сообщению
 Zireael пишет:
 Цитата:
Из за чего может быть вылет программы?

Причин полно. Нужен весь код, возможно ещё есть ошибки.
Вылетает сразу или через какое-то время?

Вылетает через пару секунд, находит цифры несколько раз, нажимает на клавиши и вылет.
Весь код не помещается в размер 6 кб у меня после функции fun идут функции readtext, key и в конце load_base, они у меня по дефолту я там ничего не менял
8. Kibor - 11 Ноября, 2023 - 08:36:23 - перейти к сообщению
 lyvrik пишет:
Вылетает через пару секунд, находит цифры несколько раз, нажимает на клавиши и вылет.

Отладчик включите.
9. lyvrik - 11 Ноября, 2023 - 09:25:16 - перейти к сообщению
 Kibor пишет:
 lyvrik пишет:
Вылетает через пару секунд, находит цифры несколько раз, нажимает на клавиши и вылет.

Отладчик включите.

Включил, пишет Ошибка в Код:
CODE:

y_str[n]=ey1+symbolypos(regexstart(n))+ScrY

Инструкция:
CODE:

INTS [9010258] = S
10. Kibor - 11 Ноября, 2023 - 10:24:42 - перейти к сообщению
Вот и ищите там проблему если код выложить не можете.
А вопросы "через пару секунд вылетает" не вопросы.
В отладчике последнее что смотрите.

Powered by ExBB FM 1.0 Final