Kibor |
Отправлено: 16 Марта, 2022 - 11:17:56
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Kwaga пишет: И пока что понимаю только визуальный редактор.
Нажмите для увеличения
Посмотреть изображение в полном размере
(Добавление)
Код который сгенерировал Виз редактор
CODE:int x;
int y;
win W_Kib;
int Screen[3000][3000];
int SUM_Color;
int eCol_Kib, eX_Kib, eY_Kib;
getdisplay(eCol_Kib, eX_Kib, eY_Kib);
//Таблица 5 на 3
int X[5]={100, 170, 240, 310, 380}//Координаты по x
int Y[3]={200, 270, 340}//Координаты по y
for(x=0; x<5; x++)
{
for(y=0; y<3; y++)
{
goto KIB_3;
KIB_6: messagebox("Слот не пустой");
goto KIB_C2;
KIB_5: messagebox("Слот пустой");
goto KIB_C2;
KIB_3: SumColor(-1, 0, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, 0, 0, #SUM_Color, X[x], Y[y], X[x]+40, Y[y]+40, 4866368, 70);
if(SUM_Color==1600) goto KIB_5;
goto KIB_6;
KIB_C2:
}
}
function SumColor(int kol, int ew, int #Scr, win #w, int v_x, int v_y, int p1, int t, int #sum_color, int sx, int sy, int fx, int fy, int col, int r)
{
pause (p1);
if (t==0)t=1;
looptime(t)
{
if (ew==0) sum_color=sumcolor(kol, sx, sy, fx, fy, col, r, r, r, r, r, r, -1);
if (ew==1) sum_color=sumcolor(kol, sx, sy, fx, fy, col, r, r, r, r, r, r, -1);
if (ew==2) sum_color=sumcolor(kol, sx, sy, fx, fy, col, r, r, r, r, r, r, w);
if (ew==3 || ew==4) sum_color=sumcolor(kol, sx, sy, fx, fy, col, r, r, r, r, r, r, #Scr[0][0]);
if (sum_color>0) return sum_color;
sleep(5);
}
return 0;
}
|
|
|
Kwaga |
Отправлено: 16 Марта, 2022 - 13:02:20
|
Наблюдатель
Покинул форум
Сообщений всего: 30
Дата рег-ции: Март 2022
Репутация: 1
|
[quote=Kibor](для просмотра ссылки Вам необходимо авторизоваться) /quote]
Сложно быть тупым
Просто меня запутал момент. В вашем примере 5 на 3.
В блоке старт координат X указано 5, а Y указано 3 координаты.
(Добавление)
Благодаря вашей помощи разобрался как это работает!
Теперь определяет какой слот занят, а какой свободен но так и остался непонятный момент,
как посчитать количество свободных и записать куда-то что бы потом использовать в цикле loop? Подскажите пожалуйста если я конечно не надоел еще
Это визуальный редактор:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
А это то что он сгенерировал:
Код (Отобразить)CODE:
win W_Kib;
int Screen[3000][3000];
int SUM_Color;
int x;
int y;
int eCol_Kib, eX_Kib, eY_Kib;
getdisplay(eCol_Kib, eX_Kib, eY_Kib);
//6 на 4
int X[6]={980, 1100, 1220, 1340, 1460, 1580}
int Y[4]={371, 491, 611, 731}
loop()
{
for(x=0; x<6; x++)
{
for(y=0; y<4; y++)
{
goto KIB_1;
KIB_6: TextOut(0, "Занят", 2, X[x], Y[y], 0, 16777215);
goto KIB_C3;
KIB_5: TextOut(0, "Свободно", 2, X[x], Y[y], 0, 16777215);
goto KIB_C3;
KIB_1: SumColor(-1, 0, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, 500, 0, #SUM_Color, X[x], Y[y], X[x]+40, Y[y]+40, 4602425, 65);
if(SUM_Color==1600) goto KIB_5;
goto KIB_6;
KIB_C3:
}
}
}
function SumColor(int kol, int ew, int #Scr, win #w, int v_x, int v_y, int p1, int t, int #sum_color, int sx, int sy, int fx, int fy, int col, int r)
{
pause (p1);
if (t==0)t=1;
looptime(t)
{
if (ew==0) sum_color=sumcolor(kol, sx, sy, fx, fy, col, r, r, r, r, r, r, -1);
if (ew==1) sum_color=sumcolor(kol, sx, sy, fx, fy, col, r, r, r, r, r, r, -1);
if (ew==2) sum_color=sumcolor(kol, sx, sy, fx, fy, col, r, r, r, r, r, r, w);
if (ew==3 || ew==4) sum_color=sumcolor(kol, sx, sy, fx, fy, col, r, r, r, r, r, r, #Scr[0][0]);
if (sum_color>0) return sum_color;
sleep(5);
}
return 0;
}
function TextOut(int n, string text, int o, int x, int y, int colt, int colf)
{
textbkcolor (colt,colf);
textout(n, x, y, text, o);
}
(Добавление)
Подскажите как сделать вот примерно такое?
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
где N количество свободных слотов посчитанных в предыдущем цикле.(Отредактировано автором: 16 Марта, 2022 - 13:05:33) |
|
|
Zireael |
Отправлено: 17 Марта, 2022 - 00:54:06
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как посчитать количество свободных и записать куда-то
В блоке Старт объявить переменную:
перед циклом loop добавить блок кода (Code), в нём:
после блока if добавить блок кода, в нём:
CODE:N++; // увеличить значение переменной на 1
после цикла в переменной N будет количество слотов. |
|
|
Kwaga |
Отправлено: 17 Марта, 2022 - 10:52:05
|
Наблюдатель
Покинул форум
Сообщений всего: 30
Дата рег-ции: Март 2022
Репутация: 1
|
Zireael пишет: Цитата: как посчитать количество свободных и записать куда-то
В блоке Старт объявить переменную:
перед циклом loop добавить блок кода (Code), в нём:
после блока if добавить блок кода, в нём:
CODE:N++; // увеличить значение переменной на 1
после цикла в переменной N будет количество слотов.
Благодарю вас!
Попробовал посмотреть какие данные оно записывает, выдает какие-то неадекватные цифры)
[img](для просмотра ссылки Вам необходимо авторизоваться) /img] |
|
|
Kwaga |
Отправлено: 17 Марта, 2022 - 10:58:49
|
Наблюдатель
Покинул форум
Сообщений всего: 30
Дата рег-ции: Март 2022
Репутация: 1
|
Kibor пишет: Kwaga пишет: Попробовал посмотреть какие данные оно записывает, выдает какие-то неадекватные цифры)
У нас множество талантов, но сомневаюсь что тут найдутся обладатели таланта видеть сквозь рисунок что находится в настройках блоков.
Прошу прощения
[img](для просмотра ссылки Вам необходимо авторизоваться) /img] |
|
|
|