Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: Простая реализация бота игры находящейся в шапке форума.
konctantin777
Отправлено: 08 Сентября, 2018 - 20:49:08
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Про такие массивы на форуме видел- почитаю- спасибо за подсказку. Просто непонятно пока как искать если в разных рядах... Пока не соображу как искать если и в разных рядах "0" (
 
 Top
konctantin777
Отправлено: 09 Сентября, 2018 - 20:27:39
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




(( Подскажите ссылку где "объясняются" массивы, чтобы можно было разобраться ?
 
 Top
Zireael
Отправлено: 09 Сентября, 2018 - 20:55:40
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Подскажите ссылку где "объясняются" массивы, чтобы можно было разобраться ?

Лучше отдельную тему создайте с вопросами.
CODE:
int a[3]; // одномерный массив на 3 элемента (можно сравнить со списком)
a[0] = 10; // присвоить значение первому элементу
a[1] = 25; // присвоить значение второму элементу
a[2] = 7; // присвоить значение третьему элементу
messagebox(a[0]);
messagebox(a[1]);
messagebox(a[2]);

messagebox("Тоже самое в цикле");
for(int i=0; i<sizearray(a); i++) // цикл для всех элементов массива
{
messagebox(a[i]); // сообщение, переменная i отвечает за индекс, т. е. к какому элементу идёт обращение
}

CODE:
int b[3][3]; // двухмерный массив 3*3 (можно сравнить с шахматной доской)
// у каждой клетки есть номер по горизонтали и вертикали

//b[0][0] - первый индекс это номер строки массива, второй индекс номер столбца
// т. е. b[1][2] это будет обращение к элементу во второй строке массива в третьем столбце
// нумерация начинается с 0, т. е. первая строка/столбец это не 1, а 0.
b[0][0]=1; b[0][1]=2; b[0][2]=3;
b[1][0]=4; b[1][1]=5; b[1][2]=6;
b[2][0]=7; b[2][1]=8; b[2][2]=9;

messagebox(b[1][2]); // выведет 6

for(int i=0; i<sizearray(b); i++) // цикл для всех строк массива
{
for(int j=0; j<sizearray(b[]); j++) // цикл для всех столбцов массива
{
messagebox(b[i][j]); // сообщение
}
}
 
 Top
konctantin777
Отправлено: 14 Сентября, 2018 - 17:48:01
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Ок.

(Отредактировано автором: 14 Сентября, 2018 - 17:48:26)

 
 Top
Kibor
Отправлено: 18 Сентября, 2018 - 01:13:40
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Набросал скрипт который легко настроить на другую игру.
Работает по принципу распознавания текста.
Надо создать и обучить свою базу для распознавания текста.
Подробнее на видео.


CODE:
pause(1000);

int X=7;
int Y=7;
int SX=78, SY=126, FX=243, FY=291;


new int m[X][Y];
new int Xm[X][Y];
new int Ym[X][Y];
new string T[Y];
int kx1, ky1, kx2, ky2;
int x, y;



enablerealmouse(10, 0, 0, 0);
loadsymbolbase ("C:\3_v_ryad\Новая база.sib");
int Color_Fon[6];
Color_Fon[0]=102; Color_Fon[1]=11369000; Color_Fon[2]=12352582; Color_Fon[3]=13474616;
Color_Fon[4]=12431005; Color_Fon[5]=6704179;

loop()
{
readtext (NUM, #T[0], 2, -1, -1, -1, -1, -1, #Color_Fon[0], 14, -1, SX, SY, FX, FY, -1);
raschet();
perebor();

/////
mousedown(LEFT, Xm[kx1][ky1], Ym[kx1][ky1]);
pause(1000);
mouseup(LEFT, Xm[kx2][ky2], Ym[kx2][ky2]);
sleep(200);
mousemove(10, 10);
/////
/*
/////
if (fopen ("c:\5.txt", "w")!=0)
{
for (y=0; y<Y; y++)
{
for (x=0; x<X; x++)
{
fwrite(m[x][y]);fwrite(" ");
}
fwrite(ENDL);
}
fclose();
}
/////
*/
pause(3000);
}

//01 23 5 2 1
function raschet()
{
int x1=0, y1=0;
char C[50];
int siz;
for (y=0; y<Y; y++)
{
strcpy(#C[0], T[y]);
siz=size(#C[0]);
for (x=0; x<siz; x++)
{
if (C[x]!=' ' && symbolcorrect(y, x)>0.5)
{
m[x1][y1]=formatsn(C[x]);
Xm[x1][y1]=SX+symbolxpos(y, x)+symbolwidth(y, x)/2;
Ym[x1][y1]=SY+symbolypos(y, x)-symbolheight(y, x)/2;
x1++;
if (x1>X-1)
{
x1=0;
y1++;
}
}
}
}
}


function perebor()
{
for (y=0; y<Y; y++)
{
for (x=0; x<X-3; x++)
{
if (m[x][y]==m[x+1][y] && m[x][y]==m[x+3][y]){kx1=x+3; ky1=y; kx2=x+2; ky2=y; return;}
}
}
//////
for (y=0; y<Y; y++)
{
for (x=3; x<X; x++)
{
if (m[x][y]==m[x-1][y] && m[x][y]==m[x-3][y]){kx1=x-3; ky1=y; kx2=x-2; ky2=y; return;}
}
}
//////
for (x=0; x<X; x++)
{
for (y=0; y<Y-3; y++)
{
if (m[x][y]==m[x][y+1] && m[x][y]==m[x][y+3]){kx1=x; ky1=y+3; kx2=x; ky2=y+2; return;}
}
}
//////
for (x=0; x<X; x++)
{
for (y=3; y<Y; y++)
{
if (m[x][y]==m[x][y-1] && m[x][y]==m[x][y-3]){kx1=x; ky1=y-3; kx2=x; ky2=y-2; return;}
}
}
//////
for (y=0; y<Y-1; y++)
{
for (x=0; x<X-2; x++)
{
if (m[x][y]==m[x+1][y] && m[x][y]==m[x+2][y+1]){kx1=x+2; ky1=y+1; kx2=x+2; ky2=y; return;}
if (m[x][y]==m[x+2][y] && m[x][y]==m[x+1][y+1]){kx1=x+1; ky1=y+1; kx2=x+1; ky2=y; return;}
if (m[x+1][y]==m[x+2][y] && m[x+1][y]==m[x][y+1]){kx1=x; ky1=y+1; kx2=x; ky2=y; return;}
}
}
//////
for (y=1; y<Y; y++)
{
for (x=0; x<X-2; x++)
{
if (m[x][y]==m[x+1][y] && m[x][y]==m[x+2][y-1]){kx1=x+2; ky1=y-1; kx2=x+2; ky2=y; return;}
if (m[x][y]==m[x+2][y] && m[x][y]==m[x+1][y-1]){kx1=x+1; ky1=y-1; kx2=x+1; ky2=y; return;}
if (m[x+1][y]==m[x+2][y] && m[x+1][y]==m[x][y-1]){kx1=x; ky1=y-1; kx2=x; ky2=y; return;}
}
}
///////
for (x=0; x<X-1; x++)
{
for (y=0; y<Y-2; y++)
{
if (m[x][y]==m[x][y+1] && m[x][y]==m[x+1][y+2]){kx1=x+1; ky1=y+2; kx2=x; ky2=y+2; return;}
if (m[x][y]==m[x][y+2] && m[x][y]==m[x+1][y+1]){kx1=x+1; ky1=y+1; kx2=x; ky2=y+1; return;}
if (m[x][y+1]==m[x][y+2] && m[x][y+1]==m[x+1][y]){kx1=x+1; ky1=y; kx2=x; ky2=y; return;}
}
}
//////

for (x=1; x<X; x++)
{
for (y=0; y<Y-2; y++)
{
if (m[x][y]==m[x][y+1] && m[x][y]==m[x-1][y+2]){kx1=x-1; ky1=y+2; kx2=x; ky2=y+2; return;}
if (m[x][y]==m[x][y+2] && m[x][y]==m[x-1][y+1]){kx1=x-1; ky1=y+1; kx2=x; ky2=y+1; return;}
if (m[x][y+1]==m[x][y+2] && m[x][y+1]==m[x-1][y]){kx1=x-1; ky1=y; kx2=x; ky2=y; return;}
}
}
///////
}
 
 Top
konctantin777
Отправлено: 21 Сентября, 2018 - 22:03:48
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




У меня почему то в левый верхний угол уходит...

код (Отобразить)
 
 Top
Kibor
Отправлено: 21 Сентября, 2018 - 22:08:13
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




А в фале правильно определяет?
5.txt
 
 Top
konctantin777
Отправлено: 21 Сентября, 2018 - 22:59:03
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Нет. Везде -842150451 . А при тесте распознавания вообще без ошибок было. Координаты проверил, что экранные...
 
 Top
Kibor
Отправлено: 21 Сентября, 2018 - 23:03:09
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




координаты экранные?
 
 Top
konctantin777
Отправлено: 21 Сентября, 2018 - 23:04:22
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Несколько раз проверил. Да.
 
 Top
Страниц (4): « 1 [2] 3 4 »
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Готовые скрипты »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by