Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ Подскажитепжлста #2

Автор: Levo222 11.2.2019, 19:53

Посдкажите как заставить Pilot нажимать конкретные кнопки в конкретное время? Т.е. у меня есть цикл 5-ти минуток, чтобы он нажал 1 кнопку в

Алгоритм

2:00:00
[2:04:30 действия по подготовке]
вторую в
2:04:59
[2:09:30 действия по подготовке]
3-ю в
2:09:59
[2:14:30 действия по подготовке]
4-ю в
2:14:59
5-ю
[2:29:30 действия по подготовке]
2:29:59
и т.д. ?
Но! чтобы постоянно не менять периоды тайминга в часах, между этих промежутков он должен незадолго до следующего времени [применить таймер] проделать определенные действия для подготовки к нажатию.
Как это сделать?

Вобщем нужно так: чтобы при запуске скрипта считывалось текущее время и делилось на периоды по N минут (окргугляя их до целых: Т.е. если сейчас 02:13:05 то цикл бы начал свою работу в 02:14:59(ну грубо говоря в 02:15, 02:20, 02:25 и пр. чтобы он искал сразу кратные 5-ти временные рубежи))(чтобы их можно было менять), в конце каждого периода проделывать действия по подготовке и непосредственно в конце сами действия, по завершения цикла остановить скрипт.

Автор: sutra 12.2.2019, 0:41

Код
log clear
log mode compact
set #timePodgotovka min + 1
repeat 10         // 10*5 крутим 50 минут
  log Ожидание
  while mod(#timePodgotovka 5) <> 0 or sec < 32
    set #timePodgotovka min + 1
    if mod (#timePodgotovka 5) = 0 and sec > 30
      log Подготовка
      // ... операторы подготовки
      wait 1000
      break
    end_if
  end_while
  log Действие
  // ... операторы действия
  while mod(#timePodgotovka 5) = 0 and sec < 59
    wait 1000
    set #timePodgotovka min + 1
  end_while
  wait 1000
end_repeat
end_script
Примерно так, не вникал в суть.

Автор: cirus 12.2.2019, 2:16

Цитата
Т.е. если сейчас 02:13:05 то цикл бы начал свою работу в 02:14:59(ну грубо говоря в 02:15, 02:20, 02:25 и пр.

Код
log clear
log mode compact
while mod(min 5) != 0 or sec != 0     // ждать когда минуты будут кратны 5 и секунды равны 0
    hint (24 clRed 500 500 -1 -1 (Ждём когда минуты будут кратны 5\nи секунды равны 0\n hour min sec))
    wait 10
end_while
log hour min sec

while 1 = 1
    log Выполняем действия
    log Ждём следующего периода
    set #t timestamp (TimeNow) + 10000  // через сколько следующий период, 10 секунд
    while #t > timestamp (TimeNow)
        set #t2 (#t - timestamp (TimeNow)) / 1000
        hint (24 clRed 500 500 -1 -1 (Осталось ждать #t2))
        wait 10
    end_while
    log hour min sec
end_while
end_script

Автор: sutra 12.2.2019, 2:36

Красиво, я тоже сначала хотел что-то в этом роде показать. НО - просто плюсовать не совсем хорошо, всё может запросто поплыть. Задача конкретная - минуты кратны 5. В противном случае всё решается элементарным таймером (аналог здесь и представлен). Далее, первое действие подготовки - БУДЕТ ПОТЕРЯНО. Ну и задавать секунды с точностью до нуля - тоже рискованная задача. Кто знает? Может винда начнёт что-то тихо для себя и про себя делать.

Мой алгоритм гораздо надёжнее.

Да и собственно задачу предварительной подготовки к финальным действиям я не вижу.

Автор: cirus 12.2.2019, 2:49

Цитата
первое действие подготовки - БУДЕТ ПОТЕРЯНО

Ждать можно и до 4 минут 30 секунд, а не 5 минут ровно.
Я лишь показал принцип.

Автор: sutra 12.2.2019, 2:55

Цитата
Я лишь показал принцип.
Я тоже, исключительно принцип. Уверен, что со временем никто ничего ждать не станет, уверен, что алгоритм будет разрастаться, как снежный ком. Программирование - затягивает. Я на этих интервалах ... собаку съел. Сорри, если что не так сказал.


Всегда задаю интервал, А НЕ ТОЧНОЕ значение. Собственно не только во времени, а и в поиске RGB тоже. Да везде!!!

Автор: Levo222 12.2.2019, 6:56

Как сделать так, чтобы незадолго до этого:

Цитата(cirus @ 12.2.2019, 6:16) *

Код
log clear
log mode compact
while mod(min 5) != 0 or sec != 0     // ждать когда минуты будут кратны 5 и секунды равны 0
    hint (24 clRed 500 500 -1 -1 (Ждём когда минуты будут кратны 5\nи секунды равны 0\n hour min sec))
    wait 10
end_while
log hour min sec


-
За 10 секунд он сделал действия подготовки? Т.е. ожидание кратности не должно быть первичным
Я вроде бы всунул её внутрь скрипта, но каша получилась,

//////////// ========================================== ///////////////////////

задача #2
сделать 1 цикл внутри которого можно путём раскоментирования выбирать конкретное действие в каждый период цикла
т.е.
У меня есть задача накормить 4-х поросят за 20 минут. В первые 5 мин зеленого поросёнка, В начале следующих 5 мин красного поросёнка, в начале следующих 5 минут красного поросёнка, а в начале следующих 5 мин опять зеленого поросёнка.
Каждый следующий цикл эта задача может изменяться в части цвета поросят. Нужно задать код внутри цикла ожидания действий вручную изменение точки нажатия(выбора поросят) чтобы не писать по 100500 циклов
допустим
// 1====
kleft 1200 470 abs //зеленый
// kleft 1200 550 abs //красный
// 2====
// kleft 1200 470 abs //зеленый
kleft 1200 550 abs //красный
// 3====
// kleft 1200 470 abs //зеленый
kleft 1200 550 abs //красный
// 4====
kleft 1200 470 abs //зеленый
// kleft 1200 550 abs //красный

вот у меня есть 4 цикла я вручную раскоментировал на 30 минут какого поросёнка в какой промежуток кормить и он должен это выполнить
+ действия по подготовке кормушки чтобы открыть дверцу за 10 сек и достать корм из холодильника за 10 сек чтобы он не успел протухнуть

-

Вобщем цель следующая: Задаю в скрипте цвета поросят в каждый период(их 4). Нажимаю на скрипт он смотрит сколько осталось до кратности 5-ти минутам, когда остаётся 10-20 сек, он Жмёт "Достать еду!" Замирает в ожидании 07:09:59 и нажимает Зеленого поросёнка. Переходит в ожидание начала следующего 5-ти минутного периода, но с учётом "Достать еду!" за 10 секунд до начала
- повторить 5 раз -
07:09:45 - достать еду
07:09:59 - кинуть красному поросёнку [почему не использую 00:00 потому что нужно время на нажатие и отклик]
ждать следующего кратного 5-ти минутам периода
Не использую таймеры иначе все
Цитата(sutra @ 12.2.2019, 6:36) *

всё может запросто поплыть.

как уже сказали.
07:14:45 - достать еду
07:15:00 - кинуть зеленому
Как Предподготовку то перед поиском кратности провести?

Автор: cirus 12.2.2019, 12:25

код
Код
init_arr %pig Свин1 Свин2 Свин3 Свин4
set #z 1

log clear
log mode compact

while #z < 5
    while mod(min 5) != 4 or sec < 40 or sec > 50
        hint (24 clRed 500 500 -1 -1 (Ждём подготовки\n hour min sec))
        wait 10
    end_while
    log Достали еду    hour min sec

    while mod(min 5) != 4 or sec < 59
        hint (24 clRed 500 500 -1 -1 (Ждём кормления\n hour min sec))
        wait 10
    end_while
    log Кормим %pig[#z]   hour min sec
    log

    wait 1000
    set #z #z + 1
end_while
end_script

Автор: Levo222 12.2.2019, 17:57

Цитата(cirus @ 12.2.2019, 16:25) *

код
Код
init_arr %pig Свин1 Свин2 Свин3 Свин4
set #z 1

log clear
log mode compact

while #z < 5
    while mod(min 5) != 4 or sec < 40 or sec > 50
        hint (24 clRed 500 500 -1 -1 (Ждём подготовки\n hour min sec))
        wait 10
    end_while
    log Достали еду    hour min sec

    while mod(min 5) != 4 or sec < 59
        hint (24 clRed 500 500 -1 -1 (Ждём кормления\n hour min sec))
        wait 10
    end_while
    log Кормим %pig[#z]   hour min sec
    log

    wait 1000
    set #z #z + 1
end_while
end_script


Он ждёт подготовки 21 час
P.S: Как ассоциировать свиней с нажатием конкретной кнопки?
Например чтобы заместо Свин 1 было [kleft 1200 550 abs(красный)] Свин 2 [kleft 1200 470 abs(зеленый)] Свин 3 [kleft 1200 470 abs(зеленый)] Свин 4 [kleft 1200 550 abs(красный)]?

Автор: cirus 13.2.2019, 1:29

Цитата
Он ждёт подготовки 21 час

Какой ещё 21 час? Он ждёт когда будет 4 мин 40 сек, 9 мин 40 сек, 14 мин 40 сек и т. д.
Цитата
Как ассоциировать свиней с нажатием конкретной кнопки?

Также как: Кормим %pig[#z]

Автор: sutra 13.2.2019, 4:16

Цитата
Как ассоциировать свиней с нажатием конкретной кнопки?
Так сколько свиней то? 4 или 2 ? Если 4, то почему координат кликов для кормёжки всего 2 варианта. Опиши подробней задачу и не надо будет ничего расскомментировать, будут отъедаться, пока комп не выключишь. Насколько я понял нужно определить интервалы кормёжки для конкретного цвета поросёнка. Вот про это и расскажи подробнее. Наверняка какие-то циферки нарисованы. Если покажешь скрин этих циферок, решим задачу.

Автор: Levo222 13.2.2019, 4:35

Цитата(cirus @ 13.2.2019, 5:29) *

Какой ещё 21 час? Он ждёт когда будет 4 мин 40 сек, 9 мин 40 сек, 14 мин 40 сек и т. д.

Да всё нормально, он у меня текущее время показывал))) вот я и....
Теперь нужно заместо выделенного жирным
-

Код
init_arr %pig !!! Свин1 Свин2 Свин3 Свин4!!!
set #z 1

log clear
log mode compact

while #z < 5
    while mod(min 5) != 4 or sec < 40 or sec > 50
        hint (24 clRed 500 500 -1 -1 (Ждём подготовки\n hour min sec))
        wait 10
    end_while
    log Достали еду    hour min sec
    wait 100
    Kleft 70, 10 abs   //1 ВКЛАДКА 30, 2 -70, 3- 110, 4 -150 х
    //звук
    wait random (300) + 200
    Kleft 132 200           // открыть дверцу
    wait random (300) + 200
    kleft 1200 300 abs      // достать еду
    wait random (300) + 200
    kleft 1200 480 abs   //задать цикл пищеварения 5 мин
    wait random (300) + 200
    while mod(min 5) != 4 or sec < 59
        hint (24 clRed 500 500 -1 -1 (Ждём кормления\n hour min sec))
        wait 10
    end_while
    log Кормим %pig[#z]   hour min sec
    log

    wait 1000
    set #z #z + 1
end_while
end_script


-
чтобы init_arr %pig Свин1 Свин2 Свин3 Свин4 это было kleft 1200 550 abs kleft 1200 470 abs kleft 1200 470 abs kleft 1200 550 abs
Присвоить - переменной [Зеленый] - kleft 1200 470 abs
переменной [Красный] - kleft 1200 550 abs
Итого: За цикл должно быть накормлено в таком порядке: Красный, Зеленый, Зеленый, Красный
set R=Kleft 1200 550 abs
set G=Kleft 1200 470 abs
init_arr %pig #R, #G, #G, #R???

Цитата(sutra @ 13.2.2019, 8:16) *

Так сколько свиней то? 4 или 2 ?

Свиней 2 типа biggrin.gif , но фактически беру 4 интервала, за каждый интервал может быть накормлена только 1 тип свиньи, тип задается вначале перед запуском скрипта. Фактически это подброс монеты - какая свинья выстрелит - вручную это делать лень.

Автор: sutra 13.2.2019, 5:03

Ну так задай координаты кликов массивом. вместо 1200 550 и т.д. Задай kleft 1200 %pigclick[#z] abs

init_arr %pigclick 550 470 470 550

Цитата
какая свинья выстрелит - вручную это делать лень.

Так колором можно посмотреть. Конечно трудно соображать в уме, когда сам не видел конкретики.

Код
init_arr %pigclick 550 470 470 550
set #z 1
//...
kleft 1200 %pigclick[#z] abs
set #z 2
//...
kleft 1200 %pigclick[#z] abs
и так далее.

Автор: Levo222 13.2.2019, 6:31

Цитата(sutra @ 13.2.2019, 9:03) *

Код
init_arr %pigclick 550 470 470 550
set #z 1
//...
kleft 1200 %pigclick[#z] abs
set #z 2
//...
kleft 1200 %pigclick[#z] abs
и так далее.

Это в непосредственно в цикл кормления или подготовки?

Автор: sutra 13.2.2019, 8:36

Цитата
Это в непосредственно в цикл кормления или подготовки?

Ну как я понимаю, там где надо кормить. Подготовка то вроде стандартная и одинаковая для всех.

Подготовка - это там где заремаренные многоточия.

Цитата
log Кормим %pig[#z]
Вот вместо этого ставишь kleft 1200 %pigclick[#z] abs

Автор: Levo222 13.2.2019, 14:00

Цитата(sutra @ 13.2.2019, 12:36) *

Ну как я понимаю, там где надо кормить. Подготовка то вроде стандартная и одинаковая для всех.

Подготовка - это там где заремаренные многоточия.

Вот вместо этого ставишь kleft 1200 %pigclick[#z] abs

Так как сделать 4 цикла то? Он останавливается после 1-го
-

Код

init_arr %pigclick 550 470 470 550
set #z 1
//kleft 1200 %pigclick[#z] abs
set #z 2
//kleft 1200 %pigclick[#z] abs
set #z 3
//kleft 1200 %pigclick[#z] abs
set #z 4
//kleft 1200 %pigclick[#z] abs

log clear
log mode compact
for #i 1 4
    while #z < 5
        while mod(min 5) != 4 or sec < 40 or sec > 50
            hint (24 clRed 500 500 -1 -1 (Ждём подготовки\n hour min sec))
            wait 10
        end_while
        log Достали еду    hour min sec
        wait 100
        Kleft 70, 10 abs   //1
        wait random (300) + 200
        Kleft 132 200           // открыть дверцу
        wait random (300) + 200
        kleft 1200 300 abs      // достать еду
        wait random (300) + 200
        kleft 1200 480 abs   //задать цикл 5 мин
        wait random (300) + 200
        while mod(min 5) != 4 or sec < 59
            hint (24 clRed 500 500 -1 -1 (Ждём кормления\n hour min sec))
            wait 10
        end_while
        log Кормим
        kleft 1200 %pigclick[#z] abs hour min sec
        //    %pig[#z]   hour min sec
        log
        wait 1000
        set #z #z + 1
    end_while
end_for
end_script



Цитата(cirus @ 13.2.2019, 5:29) *

Он ждёт когда будет 4 мин 40 сек, 9 мин 40 сек, 14 мин 40 сек и т. д.

аналогично для 15 минут нужно, они тоже кратны 5-ти но нужно делать тоже самое но каждые 15 минут

Автор: cirus 13.2.2019, 14:42

Цитата
Он останавливается после 1-го

Цитата
set #z 1
//kleft 1200 %pigclick[#z] abs
set #z 2
//kleft 1200 %pigclick[#z] abs
set #z 3
//kleft 1200 %pigclick[#z] abs
set #z 4
//kleft 1200 %pigclick[#z] abs

И что это?
#z равно 4
while #z < 5 пока #z меньше 5, т. е. выполниться 1 раз, потому что на следующем шаге #z будет 5.
for в таком виде вообще не имеет смысла. Переменная #z нигде не обнуляется.
Цитата
kleft 1200 %pigclick[#z] abs hour min sec

Что в клике делают hour min sec?
Цитата
аналогично для 15 минут нужно, они тоже кратны 5-ти но нужно делать тоже самое но каждые 15 минут

И как выполнять действия одновременно в 5 и 15 минут? Либо в разное время, либо по очереди.

Автор: Levo222 13.2.2019, 14:57

Цитата(cirus @ 13.2.2019, 18:42) *

И как выполнять действия одновременно в 5 и 15 минут? Либо в разное время, либо по очереди.

Нет отдельно для 5-ти и для 15 мин, это просто разные скрипты

То есть так:?
КОД

Код
init_arr %pigclick 550 470 470 550
set #z 1

log clear
log mode compact
for #i 1 4
    while #z < 5
        while mod(min 5) != 4 or sec < 40 or sec > 50
            hint (24 clRed 500 500 -1 -1 (Ждём подготовки\n hour min sec))
            wait 10
        end_while
        log Достали еду    hour min sec
        wait 100
        Kleft 70, 10 abs   //1
        wait random (300) + 200
        Kleft 132 200           // открыть дверцу
        wait random (300) + 200
        kleft 1200 300 abs      // достать еду
        wait random (300) + 200
        kleft 1200 480 abs   //задать цикл 5 мин
        wait random (300) + 200
        while mod(min 5) != 4 or sec < 59
            hint (24 clRed 500 500 -1 -1 (Ждём кормления\n hour min sec))
            wait 10
        end_while
        log Кормим
        kleft 1200 %pigclick[#z] abs
        //    %pig[#z]   hour min sec
        log hour min sec
        wait 1000
        set #z #z + 1
    end_while
end_for
end_script

Автор: cirus 13.2.2019, 15:19

Цитата
То есть так:?

for не нужен. А если нужен, то после end_while надо дописать set #z 1
Вот так сейчас у вас:
Код
set #z 1
for #i 1 4
    while #z < 5
        log  #z
        set #z #z + 1
    end_while
end_for
end_script

Тоже самое без for:
Код
set #z 1
while #z < 5
    log  #z
    set #z #z + 1
end_while
end_script

Цитата
Нет отдельно для 5-ти и для 15 мин, это просто разные скрипты

Причём тут разные скрипты. Курсор у винды только один. На 15й минуте будет 3й раз выполняться скрипт для 5 минут и первый раз для 15 минут. Одновременно один курсор будут дёргать друг у друга?

Автор: Levo222 13.2.2019, 15:22

Цитата
Цитата(cirus @ 13.2.2019, 19:19) *

for не нужен. А если нужен, то после end_while надо дописать set #z 1
Вот так сейчас у вас:
Код
set #z 1
for #i 1 4
    while #z < 5
        log  #z
        set #z #z + 1
    end_while
end_for
end_script

Тоже самое без for:
Код
set #z 1
while #z < 5
    log  #z
    set #z #z + 1
end_while
end_script


Причём тут разные скрипты. Курсор у винды только один. На 15й минуте будет 3й раз выполняться скрипт для 5 минут и первый раз для 15 минут. Одновременно один курсор будут дёргать друг у друга?

Про for понял. Про 5 и 15 Эти скрипты будут выполняться в разное время, вообще никак не пересекаться !=На разных компах

Сейчас цикл выполнился как надо, и for никак не помешал, непонятно как он будет работать если нужно выполнить 4 раза по 4 Т.е. после End_While дописываю Set #z 1 и он выполняет 4 по 4?

Если я сопоставлю переменные массиву координат #Y в init_arr %pigclick 550 470 470 550
set #R 550
set #G 470
и напишу init_arr %pigclick #R #G #G #R
Это будет работать?

----------Upd--------------------

Упс) Не работает
Image

https://imgbb.com/

Автор: sutra 13.2.2019, 16:51

Цитата
Упс) Не работает
А где set #z


Скрипт просто не знает индекс массива. Наверное придётся рисовать всё целиком, что-то тяжеловато у Вас идёт.

В некоторых случаях, некоторые операторы не понимают массивы. Надёжнее делать так set #Y %pigclick[#z] #z - должна быть индексом какого-либо цикла.

И потом left 1200 #Y abs

Выбор варианта корма хрюшек можно делать используя оператор promt

Автор: sutra 13.2.2019, 17:13

Цитата
Про 5 и 15 Эти скрипты будут выполняться в разное время, вообще никак не пересекаться !=На разных компах

Новая новость, так если на разных и делайте для каждого компа СВОЙ скрипт, где 5 минут, где 15.

Автор: Levo222 13.2.2019, 17:37

Цитата(sutra @ 13.2.2019, 21:13) *

Новая новость, так если на разных и делайте для каждого компа СВОЙ скрипт, где 5 минут, где 15.

Я так и хочу

Автор: sutra 13.2.2019, 17:43

Код
log clear
log mode compact
while 1 = 1   // крутить бесконечно
    set #b prompt (Зеленый-Красный-Красный-Зеленый Красный-Зеденый-Зеленый-Красный)
    if #b = 1
        init_arr %pigclick 470 550 550 470
      else
        init_arr %pigclick 550 470 470 550
    end_if
    set #z 1          // будем кормить начиная с первого
    while #z < 5      // цикл кормёжки 4-х свинов
        while mod(min 5) != 4 or sec < 40 or sec > 50
            hint (24 clRed 500 500 -1 -1 (Ждём подготовки\n hour min sec))
            wait 10
        end_while
        Kleft 70, 10 abs   // это у вас - не знаю что это
        wait random (300) + 200
        Kleft 132 200           // открыть дверцу
        wait random (300) + 200
        kleft 1200 300 abs      // достать еду
        while mod(min 5) != 4 or sec < 59
            hint (24 clRed 500 500 -1 -1 (Ждём кормления\n hour min sec))
            wait 10
        end_while
        kleft 1200 %pigclick[#z] abs  // Кормим кого надо
        wait 1000
        set #z #z + 1
    end_while
end_while
end_script


На основе ваших действий примерно так, естественно не проверял.

Интервалы, если они разные и без всякой логики тоже можно задать используя promt

Автор: Levo222 13.2.2019, 19:44

Цитата(sutra @ 13.2.2019, 21:43) *

[code]
set #b prompt (Зеленый-Красный-Красный-Зеленый Красный-Зеденый-Зеленый-Красный)


Что означает эта функция? И как она сопоставляется с переменными? Сл. Зеленый синий красный где именно привязываются?

А я понял это заранее заданные шаблоны которые подтверждаются при запуске. У меня нет готовых вариаций последовательности кормёжки свиней. Вариации свиней всегда рандомные, там не подойдут заготовленные шаблоны, ну если и подойдут то их будет 100500 комбинаций.


Автор: Levo222 13.2.2019, 20:08

Цитата(sutra @ 13.2.2019, 20:51) *

А где set #z

Надёжнее делать так set #Y %pigclick[#z] #z - должна быть индексом какого-либо цикла.

И потом left 1200 #Y abs

Не работает
https://imgbb.com/

Ниче не понял. Вот это вот мне куда всунуть?

А можно сделать чтобы Prompt предлагал вариацию кормления следующей чушки незадолго до времени кормления? Т.е. чтобы подавал звуковой сигнал и предлагал выбрать какую чушку кормить следующую? А сам автоматически всё делал?

Автор: sutra 13.2.2019, 22:52

По поводу ошибки. Либо значение #z не определено (что скорее всего), либо значение массива для ДАННОГО #z не определено. Незадолго ... конечно можно. Вам дали пример, какая разница что делать. Так же определяйте время когда его вызывать. Сигнал - можно вроде (вроде видел в справке), но никогда не пользовался им. Сам автоматически - конечно можно. Можно ВСЁ. Вопрос в том, что Ваших знаний пока маловато, но шаг за шагом будете совершенствоваться.

Цитата
Вариации свиней всегда рандомные
Ну Вы же видете цвет хрюшек? И Пилот может посмотреть. Вы же знаете время кормления? И Пилот может узнать. Так что конечно всё это можно автоматизировать без особых усилий.

Автор: sutra 13.2.2019, 23:42

Цитата
Вариации свиней всегда рандомные, там не подойдут заготовленные шаблоны
А вот тут уже я не понимаю. Если ВСЁ рэндомно, то КАК ВЫ методом простого расскомментирования решаете эту задачу. Я смотрю, что Вы пытаетесь делать и даю рекомендации исходя ИЗ ПОСТАВЛЕННОЙ ВАМИ задачи. Ставьте задачу корректно - получите 100% действенную реализацию.


Цитата
их будет 100500 комбинаций
И опять не понял. Как могут 4 свина двух цветов дать такое количество комбинаций. Не понимаю я Вашей задачи, следовательно и советовать как-то не с руки. Спрашиваете одно ... потом вдруг несколько компьютеров появляется ... и т.д. Ставьте конкретные задачи...


По ошибкам ... давайте конкретный код, Вам скажут ПОЧЕМУ она произошла. В данном конкретном случае, если сказать упрощённо по-русски, то Вы пытаетесь присвоить переменной #Y значение, которое не является числом.

Автор: Levo222 14.2.2019, 0:31

Цитата(sutra @ 14.2.2019, 3:42) *

По ошибкам ... давайте конкретный код, Вам скажут ПОЧЕМУ она произошла.

Так. Вот в таком виде она работает:
Код
Код
 init_arr %pigclick 550 470 470 550
set #z 1

log clear
log mode compact
    while #z < 5
        while mod(min 5) != 4 or sec < 40 or sec > 50
            hint (24 clRed 500 500 -1 -1 (Ждём подготовки\n hour min sec))
            wait 10
        end_while
        log Достали еду    hour min sec
        wait 100
        Kleft 70, 10 abs   //1
        wait random (300) + 200
        Kleft 132 200           // открыть дверцу
        wait random (300) + 200
        kleft 1200 300 abs      // достать еду
        wait random (300) + 200
        kleft 1200 480 abs   //задать длительность 5 мин
        wait random (300) + 200
        while mod(min 5) != 4 or sec < 59
            hint (24 clRed 500 500 -1 -1 (Ждём кормления\n hour min sec))
            wait 10
        end_while
        log Кормим
        kleft 1200 %pigclick[#z] abs
        log hour min sec
        wait 1000
        set #z #z + 1
    end_while
end_script

Теперь нужно init_arr %pigclick 550 470 470 550
привести к такому виду, где бы он выглядел как init_arr %pigclick А В В А
А это синяя хрюшка, В зеленая, и никаких других данных.

Автор: sutra 14.2.2019, 1:27

Цитата
привести к такому виду, где бы он выглядел как init_arr %pigclick А В В А
Эх! Вот что мне нравится ... не сворачивать с избранного пути. Вот Вы говорите привести к такому виду. А ЗАЧЕМ? Приводить ничего не надо. init_arr - это способ быстренько создать массив с уже определёнными значениями. Да Вы можете сделать хоть так : init_arr %pig Красный Зелёный ... В итоге %pig[1] будет иметь значение Красный - тип элемента СТРОКА, %pig[2] будет иметь значение Зеленый. Конечно можно и строки сравнивать. Можно сделать ДВУМЕРНЫЙ массив, но даже боюсь начинать объяснять. Поставьте ЗАДАЧУ. ЧТО НАДО СДЕЛАТЬ? И тогда будем думать.


Цитата
%pigclick 550 470 470 550
- этот массив содержит координаты (4 варианта)
Код
init_arr %pigclick А В В А
Этот вариант имеет 4 элемента со строковыми значениями "А" "В" "В" "А" соответственно.


Зачем Вам строки? Объясните задачу...

Автор: cirus 14.2.2019, 1:33

И что там с 5 и 15 минутами?
Первый скрипт для 5 минут, т. е. срабатывает в 4:59, 9:59, 14:59 и т.д.
Второй для 15 минут, срабатывает в ???

Автор: sutra 14.2.2019, 1:36

У меня конкретный вопрос. Время кормления (интервал) зависит от цвета свинки? Если не зависит, то КАКАЯ ВАМ РАЗНИЦА какого она цвета? Нужно знать : интервал кормления и от чего он зависит. Если интервал кормления ни от чего не зависит и полный рэндом. Скажите, а КАК Вы сами видете этот интервал???

Возможно каждая хрюшка сидит на "своём" месте. И для этого конкретного места рэндомно задаётся интервал кормления. ЗНАЧИТ НУЖНО привязываться к конкретным координатам кормления, а не к цвету свинки. Короче ... нужны подробности.

Автор: Levo222 14.2.2019, 1:39

Цитата(cirus @ 14.2.2019, 5:33) *

И что там с 5 и 15 минутами?
Первый скрипт для 5 минут, т. е. срабатывает в 4:59, 9:59, 14:59 и т.д.
Второй для 15 минут, срабатывает в ???

00:00, 00:14:59, 00:29:59, 00:44:59, 00:59:59 и т.д

Автор: sutra 14.2.2019, 1:40

Цитата
И что там с 5 и 15 минутами?Первый скрипт для 5 минут, т. е. срабатывает в 4:59, 9:59, 14:59 и т.д.Второй для 15 минут, срабатывает в ???
Блин, да он настоящий партизан. Ему надо грамотно и подробно сформулировать задачу. Уверен, всё легко автоматизируется, времени для ЛЮБОГО анализа ... вагон и маленькая тележка.

Автор: cirus 14.2.2019, 1:41

Цитата
00:00, 00:14:59, 00:29:59, 00:44:59, 00:59:59 и т.д

В 14:59 сработают оба скрипта? Курсор они как будут делить?

Автор: sutra 14.2.2019, 1:46

Цитата
00:00, 00:14:59, 00:29:59, 00:44:59, 00:59:59 и т.д
Вроде начинаю понимать. Вопрос, а почему на разных компах? Может всё сделаем на одном?


Интервал ... 5, 15, 20 ... да сколько угодно, тоже можно задать при помощи массива , например %pigtime и с его помощью сделать один универсальный скрипт.

Цитата
В 14:59 сработают оба скрипта? Курсор они как будут делить?
Браво!! Резонный вопрос.


Мне кажется, что он просто решил, что разбивкой скрипта для работы на разных компах будет проще решить задачу. ЭТО НЕ ТАК - будет сложнее. Всё можно делать в одном окне.

Автор: Levo222 14.2.2019, 1:52

Цитата(sutra @ 14.2.2019, 5:36) *

У меня конкретный вопрос. Время кормления (интервал) зависит от цвета свинки? Если не зависит, то КАКАЯ ВАМ РАЗНИЦА какого она цвета? Нужно знать : интервал кормления и от чего он зависит. Если интервал кормления ни от чего не зависит и полный рэндом. Скажите, а КАК Вы сами видете этот интервал???

Возможно каждая хрюшка сидит на "своём" месте. И для этого конкретного места рэндомно задаётся интервал кормления. ЗНАЧИТ НУЖНО привязываться к конкретным координатам кормления, а не к цвету свинки. Короче ... нужны подробности.

Не зависит он от цвета свинки.
Зависимость такая же как у большинства людей выбор того или иного человека для общения - дело вкуса. Я думаю этот вопрос слишком глубокий чтобы на него ответить в 2-х словах.

Цитата(cirus @ 14.2.2019, 5:41) *

В 14:59 сработают оба скрипта? Курсор они как будут делить?

Да не будут они делить курсор. Как будет выглядеть другой скрипт работающий по циклам 15минут а не 5?

Автор: sutra 14.2.2019, 1:54

Цитата
Не зависит он от цвета свинки.
Ну значит я угадал. Значит в одних и тех же координатах появляется новая задача кормления свинки. У этих координат есть конкретный интервал кормления, вот это и надо определить, но без Вас мне это не определить. Ну если Вы не можете ответить в 2-х словах, то мне понять Вас при помощи одного слова не получится. Если Вам не нравятся мои реплики - согласен, я резковат, ну тогда не буду навязываться.

Автор: cirus 14.2.2019, 1:55

Цитата
Как будет выглядеть другой скрипт работающий по циклам 15минут а не 5?

Точно также. while mod(min 5) заменить на while mod(min 15)

Автор: Levo222 14.2.2019, 1:55

Цитата(sutra @ 14.2.2019, 5:46) *

Вроде начинаю понимать. Вопрос, а почему на разных компах? Может всё сделаем на одном?.

Сделайте, Я закоментирую просто

Автор: sutra 14.2.2019, 1:56

Цитата
Вы бы доверили программе с заданным алгоритмом выбирать для вас жену?
Я привык вообще никому не доверять, извините, обжигался не раз. Я всегда всё проверяю сам.

Автор: Levo222 14.2.2019, 2:03

Цитата(cirus @ 14.2.2019, 5:55) *

Точно также. while mod(min 5) заменить на while mod(min 15)

Гениально, можно было сказать сразу)

Цитата(sutra @ 14.2.2019, 5:27) *

Этот вариант имеет 4 элемента со строковыми значениями "А" "В" "В" "А" соответственно.
Зачем Вам строки? Объясните задачу...

Сложность восприятия числовых данных, время на дешифровку числового выражения. Каждый раз нужно будет сопоставлять числовые данные с визуальным обозначением, можно же это автоматизировать, потом вывести кнопки

Цитата(sutra @ 14.2.2019, 5:56) *

Я привык вообще никому не доверять, извините, обжигался не раз. Я всегда всё проверяю сам.

Вот поэтому невозможно всё задать в алгоритме

Автор: sutra 14.2.2019, 2:07

Цитата
Гениально, можно было сказать сразу) Возни на 3 страницы...
Да, гениально!! Высшая точка IQ!! То, что я пытался сразу сказать, оказалось гениальным, а я оказался изгоем... Но видимо надо было сразу сказать, чтобы как-то понять. Сорри - умываю руки.

Автор: cirus 14.2.2019, 2:10

Цитата
Точно также. while mod(min 5) заменить на while mod(min 15)

Ну и сравнивать не с 4, естественно.

Автор: Levo222 14.2.2019, 2:32

Цитата(sutra @ 14.2.2019, 5:54) *

Ну значит я угадал. Значит в одних и тех же координатах появляется новая задача кормления свинки. У этих координат есть конкретный интервал кормления, вот это и надо определить, но без Вас мне это не определить. Ну если Вы не можете ответить в 2-х словах, то мне понять Вас при помощи одного слова не получится. Если Вам не нравятся мои реплики - согласен, я резковат, ну тогда не буду навязываться.

Ладно если вам легче воспринимайте это как комбинацию из селективного выбора свиней для получения суперсвина, набор генных качеств это рандомный скрытый набор, а процесс выбора это творческий процесс, невозможно задать выбор того, что еще не случилось

Автор: Levo222 14.2.2019, 2:51

Цитата(cirus @ 14.2.2019, 6:10) *

Ну и сравнивать не с 4, естественно.

А с чем?
Цитата(sutra @ 14.2.2019, 5:27) *

Этот вариант имеет 4 элемента со строковыми значениями "А" "В" "В" "А" соответственно.
Зачем Вам строки? Объясните задачу...

Сложность восприятия числовых данных, там бабушка божий одуванчик будет сидеть и кормить свинок, она числа не учила, а только Алфавит)

Автор: cirus 14.2.2019, 3:11

Цитата
А с чем?

C 14.

Автор: Levo222 14.2.2019, 16:50

Цитата(sutra @ 14.2.2019, 5:27) *

Можно сделать ДВУМЕРНЫЙ массив, но даже боюсь начинать объяснять. Поставьте ЗАДАЧУ. ЧТО НАДО СДЕЛАТЬ? И тогда будем думать.

Нужно сделать двумерный массив!

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)