int col=6, row=6; // размеры поля, количество столбцов, количество строк
int fishka=8; // количество фишек
string path="C:\"; // путь для сохранения скрина, массива с номерами фишек и массива с возможными ходами и стоимостью ходов
// стоимость фишек
new int cost[fishka];
cost[0]=10; // стоимость черепов с рогами
cost[1]=5; // стоимость черепов
cost[2]=99; // стоимость черепок
cost[3]=99; // стоимость зелёный скворечник
cost[4]=99; // стоимость синия капля
cost[5]=99; // стоимость красный шар
cost[6]=1; // стоимость ----
cost[7]=1; // стоимость пустота
int priority=3; // приоритет для хода
// 0 - приоритет 5 в ряд, если нет такого хода, будет сделан ход максимальный по стоимости
// 1 - приоритет 5 или 4 в ряд, если нет таких ходов, будет сделан ход максимальный по стоимости
// 2 - приоритет максимальная стоимость хода,
// 3 - если нет ходов 4 или 5, то приоритет 3 в ряд, которые находятся в самом низу поля
// параметры для findheapcolor
int r=50; // разбежность для поиска картинок (подобрать, если не находит картинки)
//int sx=801, sy=96, fx=1127, fy=420; // координаты для findheapcolor
int sx=807, sy=269, fx=1133, fy=592; // координаты для findheapcolor
int color1[10], color2[4], color3[2], color4[2], color5[2], color6[2], color7[1], color8[1];
color1[0]=9213398; // роковой череп
color1[1]=7044850;
color1[2]=1513934;
color1[3]=10399711;
color1[4]=10002905;
color1[5]=5400554;
color1[6]=1845712;
color1[7]=792536;
color1[8]=7174364;
color1[9]=12239844;
color2[0]=1447446; // обычный череп
color2[1]=13950180;
color2[2]=16645629;
color2[3]=65793;
color3[0]=16514043;color3[1]=8033178; // черепок
color4[0]=2548683; color4[1]=238676;// зелёный скворечник
color5[0]=15780137; color5[1]=12547889;// синия капля
color6[0]=1315036; color6[1]=526198;// красный шар
color7[0]=9686241; // ----
color8[0]=1120542; // пустота
int kol1[10], kol2[4], kol3[2], kol4[2], kol5[2], kol6[2], kol7[1], kol8[1];
kol1[0]=25; kol1[1]=25; kol1[2]=25; kol1[3]=25; kol1[4]=15;
kol1[5]=15; kol1[6]=15; kol1[7]=15; kol1[8]=15; kol1[9]=15;
kol2[0]=100; kol2[1]=100; kol2[2]=100; kol2[3]=50;// обычный череп
kol3[0]=120;kol3[1]=100;// черепок
kol4[0]=10;kol4[1]=10; // зелёный скворечник
kol5[0]=22; kol5[1]=8;// синия капля
kol6[0]=75; kol6[1]=66;// красный шар
kol7[0]=100;// ----
kol8[0]=111;// пустота
////////////
int sx2=1036, sy2=37, fx2=1107, fy2=84; // координаты белой стрелки хода противника
// тут ничего не менять
int kx1, ky1, kx2, ky2;
int size_field=row*col; // размер поля
int i, j, k, found;
new int field[col][row]; // поле
new int arr[size_field][3]; // массив для всех найденных фишек, хранит координаты и номер фишки
new int posX[size_field];
new int posY[size_field]; // массивы для координат фишек
new int scren[fx-sx+1][fy-sy+1]; // массив для скрина экрана
int stepX=(fx-sx)/col, stepY=(fy-sy)/row; // размеры клеток
int pos_textout_y, time;
////////////
loop()
{
pos_textout_y=fy+20;
resettextout(1);
textbkcolor(16000000, 65280);
textout(0, sx, pos_textout_y, "Проверка доступности хода", 0);pos_textout_y=pos_textout_y+20;
//dynamic(4, 4, sx2, sy2, fx2, fy2); // проверка что ходит не противник
textout(1, sx, pos_textout_y, "Проверка динамики", 0);pos_textout_y=pos_textout_y+20;
//dynamic(stepX, stepY, sx, sy, fx, fy); // поиск динамики, ждёт когда фишки перестанут сдвигаться
screen (#scren[0][0], sx, sy, fx, fy, -1); // скрин
textout(2, sx, pos_textout_y, "Поиск картинок", 0);pos_textout_y=pos_textout_y+20;
found=0;
//while(found<size_field) // пока не найдется нужное количество фишек
//{
found=find(); // поиск картинок и их сортировка
sleep(10);
//}
SaveArray(); // сохранение массива в файл (можно убрать)
saveimage(#scren[0][0], path+"scren.bmp"
; // сохранить скрин (можно убрать)
time=gettime();
int z=perebor(#field[0][0], col, row, #kx1, #ky1, #kx2, #ky2, #cost[0], fishka, priority); // поиск хода
textout(3, sx, pos_textout_y, "На поиск хода затрачено: "+format(gettime()-time)+" мсек", 0);pos_textout_y=pos_textout_y+20;
textout(4, sx, pos_textout_y, "Собрано в ряд: "+format(z), 0);pos_textout_y=pos_textout_y+20;
if (z>2)hod(kx1, ky1, kx2, ky2); // если ход найден
//else {messagebox("Ход не найден"
; break;}
sleep(300);
textout(5, sx, pos_textout_y, "Проверка динамики", 0);pos_textout_y=pos_textout_y+20;
//dynamic(stepX, stepY, sx, sy, fx, fy); // поиск динамики, ждёт когда фишки перестанут сдвигаться
}