Эксперт
Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017
Откуда: Архангельск
Репутация: 6
|
Пересмотрел, значёк массива добавил- стал ошибку readtext выдавать... код (Отобразить)pause(1000);
int X=8; // ðàçìåðíîñòü èãðîâîãî ïîëÿ (ñêîëüêî êëåòîê)
int Y=8; // ðàçìåðíîñòü èãðîâîãî ïîëÿ (ñêîëüêî êëåòîê)
int SX=170, SY=308, FX=546, FY=681; // íà÷àëî è êîíåö ïîëÿ
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); // ÷åëîâ÷íàÿ ìûøü
//string Text;
loadsymbolbase ("D:\YandexDisk\Bot\GoW\11.sib");
int Color_Text[62];
Color_Text[0]=10127084; Color_Text[1]=10127084; Color_Text[2]=11060217; Color_Text[3]=4153836; Color_Text[4]=3416000; Color_Text[5]=5390806; Color_Text[6]=7890139; Color_Text[7]=5451991;
Color_Text[8]=10403060; Color_Text[9]=12439801; Color_Text[10]=4153836; Color_Text[11]=4153836; Color_Text[12]=3756271; Color_Text[13]=3753430; Color_Text[14]=1447063; Color_Text[15]=3153322;
Color_Text[16]=5055417; Color_Text[17]=4746735; Color_Text[18]=5210607; Color_Text[19]=5210607; Color_Text[20]=11060217; Color_Text[21]=12439801; Color_Text[22]=6850800; Color_Text[23]=2631338;
Color_Text[24]=4795618; Color_Text[25]=723102; Color_Text[26]=1072569; Color_Text[27]=3058147; Color_Text[28]=3247569; Color_Text[29]=3253704; Color_Text[30]=2723823; Color_Text[31]=8293290;
Color_Text[32]=10598620; Color_Text[33]=10005971; Color_Text[34]=7701679; Color_Text[35]=6517661; Color_Text[36]=1078816; Color_Text[37]=3716692; Color_Text[38]=1609782; Color_Text[39]=2735731;
Color_Text[40]=2207838; Color_Text[41]=11384509; Color_Text[42]=12436164; Color_Text[43]=10000800; Color_Text[44]=12436164; Color_Text[45]=14410987; Color_Text[46]=14608367; Color_Text[47]=10460319;
Color_Text[48]=10134180; Color_Text[49]=13816008; Color_Text[50]=12434864; Color_Text[51]=11252145; Color_Text[52]=13749698; Color_Text[53]=12392588; Color_Text[54]=13013537; Color_Text[55]=13402417;
Color_Text[56]=13866294; Color_Text[57]=14072627; Color_Text[58]=11886872; Color_Text[59]=10635781; Color_Text[60]=10237968; Color_Text[61]=12481053;
// messagebox (Text);//òåñò
loop()
{
readtext (NUM, #Text[0], 2, 3, -1,-1, -1, -1, #Color_Text[0], -1, 18, -1, SX, SY, FX, FY, -1); //Ñêàíèðóåò óêàçàííóþ îáëàñòü ýêðàíà, îêíà èëè ôàéëà èçîáðàæåíèÿ, ÷èñòèò èçîáðàæåíèå îò øóìà è ðàñïîçíàåò òåêñò è çàïèñûâàåò åãî â string èëè char
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);
/////
}
(Добавление)
Вот в итоге (Отобразить)pause(1000);
int X=8; // ðàçìåðíîñòü èãðîâîãî ïîëÿ (ñêîëüêî êëåòîê)
int Y=8; // ðàçìåðíîñòü èãðîâîãî ïîëÿ (ñêîëüêî êëåòîê)
int SX=173, SY=309, FX=545, FY=681; // íà÷àëî è êîíåö ïîëÿ
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;
//string Text;
loadsymbolbase ("D:\YandexDisk\Bot\GoW\22.sib");
int Color_Text[35];
Color_Text[0]=3481793; Color_Text[1]=4861409; Color_Text[2]=1578140; Color_Text[3]=3757807; Color_Text[4]=2037168; Color_Text[5]=5390806; Color_Text[6]=8351969; Color_Text[7]=9468649; Color_Text[8]=3622124; Color_Text[9]=199085; Color_Text[10]=2890446; Color_Text[11]=1230; Color_Text[12]=3222734; Color_Text[13]=12418328; Color_Text[14]=12881696; Color_Text[15]=11628573; Color_Text[16]=11759650; Color_Text[17]=10832408; Color_Text[18]=10636828; Color_Text[19]=8659984; Color_Text[20]=10109189; Color_Text[21]=8858899; Color_Text[22]=13336625; Color_Text[23]=13340497; Color_Text[24]=7831971; Color_Text[25]=4146286; Color_Text[26]=4936578; Color_Text[27]=7573181; Color_Text[28]=6516631; Color_Text[29]=1547336; Color_Text[30]=1082923; Color_Text[31]=2471267; Color_Text[32]=9409940; Color_Text[33]=11580854; Color_Text[34]=9607060;
int Color_Fon[2];
Color_Fon[0]=5000013; Color_Fon[1]=6841708;
//messagebox (Text);//òåñò
//enablerealmouse(10, 0, 0, 0); // ÷åëîâ÷íàÿ ìûøü
loop()
{
readtext (NUM, #T[0], 12, 3, -1, -1, -1, #Color_Text[0], #Color_Fon[0], 14, 86, 173, 309, 545, 681, -1);//Ñêàíèðóåò óêàçàííóþ îáëàñòü ýêðàíà, îêíà èëè ôàéëà èçîáðàæåíèÿ, ÷èñòèò èçîáðàæåíèå îò øóìà è ðàñïîçíàåò òåêñò è çàïèñûâàåò åãî â string èëè char
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]); //Êîïèðîâàíèå string â ìàññèâ char
siz=size(#C[0]); //Âîçâðàùàåò êîëè÷åñòâî ýëåìåíòîâ ìàññèâà char äî ïåðâîãî íóëÿ èëè äëèíó ñòðîêè string
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; //Âîçâðàùàåò ïîçèöèþ ñèìâîëà ïî X îò íà÷àëà çîíû ïîèñêà. Ëåâûé óãîë
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;}
}
}
///////
}
Один раз ходит неправильно, затем уходит в верхний лвй угол. В файл "5" записано распознано верно |