|
|
|
Как присвоить переменной элемент массива? |
|
|
FREEON |
25.2.2019, 20:47
|
Journeyman
Сообщений: 365
Регистрация: 14.2.2017 Группа: Пользователи Наличность: 1316
Пользователь №: 18.346
Возраст: 25
|
Цитата(nykep @ 25.2.2019, 20:01) через поиск цвета у меня получается массив с координатами set #fog findcolor (#fogx1, #fogy1 #fogx2, #fogy2 1 1 (12356918) %arfog 2 -1 2) я хочу эти координаты присвоить переменным, пишу set #tupx %arfog [1 1] set #tupy %arfog [1 2] но что то не получается, кажется он присваивает нули, странно что когда я наблюдал за работой скрипта в некоторых случаях вроде срабатывало, не могу найти ошибку может я присваиваю неправильно? Заранее спасибо.
Да вроде нормально все попробуй вывести log Код set #tupx %arfog [1 1] set #tupy %arfog [1 2] log %arfog [1 1] log %arfog [1 2] log #tupx #tupy
Нули потому что нет искомого цвета в области поиска #fogx1, #fogy1 #fogx2, #fogy2
|
|
|
|
nykep |
25.2.2019, 23:31
|
Apprentice
Сообщений: 233
Регистрация: 1.9.2012 Группа: Пользователи Наличность: 1196
Пользователь №: 15.246
Возраст: 25
|
Цитата(sutra @ 25.2.2019, 23:18) Вообще, искать КОНКРЕТНЫЙ цвет, в принципе не очень правильно. Если только заранее известно, что ищутся пиксели на абсолютно стабильном изображении. Лучше всегда задавать диапазон каналов, ну или если не совсем понятно что к чему - задавать адекватный параметр отклонения каналов (deviation), порядка 3-10%.
к счастью я хотя бы нашел что в %arfog 2 -1 2 последняя цифра означает погрешность, правда как именно работает эта погрешность и в чем выражается я не понял, но все равно это очень помогло. как я и сказал я много чего упустил с развитием пилота и что за deviation и как им пользоваться тоже не знаю, может когда приспичит поищу, а если не найду или не пойму спрошу здесь на форумеЖ)
|
|
|
|
xolost |
26.2.2019, 3:40
|
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035
|
Цитата(sutra @ 25.2.2019, 23:31) Не так страшен чёрт, как его малюют. Пробуйте, поначалу конечно непонятно всё, но если на Пилотовском языке есть опыт написания скриптов, то и lua освоите. Я сам всего лишь 3 месяца назад начал пробовать lua, а сейчас уже более менее ориентируюсь и ни малейшего разочарования нет. Преимущества - огромные. А если нужна скорость, тут даже и говорить не о чем - только lua. Справка по lua сейчас вполне приличная, для большинства случаев её достаточно, будет непонятно - спросите. Подскажут что и как.
А вот возьму и встречно отвечу, что мне лично не зашел ЛУА, зато дико зашел ПИТОН и вот примеры почему. 1) Отсутствие ендов, конечно же. Т.е. вместо end_if или как в луа просто end, просто тело пишется с отступом таб в новой строке и усё. Пример: Код 2) Гораздо проще синтаксис. Например если хотим задать переменную в луа, например локальную, то пишем: Код (или без равно, подзабыл уже ЛУА) А в питоне, не надо никаких local писать. Код И если она указана внутри функции, то она и будет лишь локальной внутри это функции вот и всё =) далее фор, не помню точно как в луа, но помню что тоже какие-то танцы. В питоне вот: Код Где x - что угодно, число, текст, словарь(ключи\значчения\многоуровневый словарь), список и всё что угодно вообщем.
|
|
|
|
sutra |
26.2.2019, 4:36
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Цитата Где x - что угодно, число, текст, словарь(ключи\значчения\многоуровневый словарь), список и всё что угодно вообщем. Как уже не раз говорил, стандарта - нет. Я вообще считаю, что уровень FOR, While, Repeat, IF и т.п. элементарщине, лет 20 ещё назад надо было возвести в стандарт. Но, каждый считает, что он умнее всех и норовит придумать своё. Лично моё мнение ... Ежели могёшь (не обделавшись, я про программы) различать число, текст, словарь и что угодно - флаг в руки. Только я пока что видел одни экскременты при таких реализациях. И тут пока либо Пилот, либо ЛУА, иных альтернатив пока нет. Хотя я наслышан, что как раз ЛУА далёк от идеала и от востребованности. Но на нет и спроса нет. Есть ЛУА, будем делать на ЛУА. Про Умность ЛУА я уже неоднократно говорил в соответствующей теме. Вопросов много, косяков хватает, но обойти можно. Вообще, любой программер знает, 90% кода занимает ввод и вывод инфы юзеру. Вот и пытаются все решить этот вопрос. А ещё есть хелп к проге, его нарисовать понятно ещё дольше и сложнее. Вот поэтому и нужен стандарт, но воз и ныне там. Я такой же юзер, мало что знаю, ещё меньше умею. Просто высказываю свои мысли, сорри, если что не так. Исходя из понимания принципов работы электроники, всё хранится в байтах (точнее битах). И байтам (битам) глубоко фиолетово, что там в них хранится. И если для определения того, что там хранится, надо опросить всю систему - грош цена таким реализациям. Что мешает указать ЧТО там хранится. Высокий уровень, решает за пользователя такие, вроде незначительные вопросы. Вот только если нужна скорость, то такие размышления системы явно не в плюс. Да, сейчас герцов хватает, памяти - как грязи, винты? чёрта лысого вместят. Вопрос один, а кто кого раньше вычислит и грохнет?
|
|
|
|
sutra |
26.2.2019, 5:02
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Мы решаем "чужие" задачи. Мы пытаемся обмануть "чужие" алгоритмы. "Чужие" хотят денег ... Мы не хотим их "чужим" давать. Вот нарисовала нам "чужая" прога ... "У Васи есть 11 яблок". "Чужая" прога точно знает кто такой Вася и что у него есть яблоки и что их 11 штук. Но прога "чужая" и мы должны понять, что это яблоки, что они у Васи и что их 11 штук. Вот и придумываем обходные пути. Поднимаем планку на уровень выше. А кто по умнее, прошерстит память и поймёт что это Вася, поймёт сколько, чего и у кого есть. А более серьёзный юзер, обладающий многократно превосходящими знаниями и возможностями, спросит самого Васю, да так, чтобы Вася не смог отказать ...
|
|
|
|
xolost |
26.2.2019, 5:10
|
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035
|
Цитата(sutra @ 26.2.2019, 4:36)
Я, на самом деле немного обманул, по-поводу числа, для for что бы по числу пройти, надо добавть range(x) т.е. for i in range(x): тогда будет создано кол-во циклов равное x Однако, отвечая на твой вопрос, я скажу, что ты немного перегибаешь. for - это синтаксический сахар. Т.е. он создан именно с целью облегчить работу программиста. Поэтому его могут вертеть как захотят. Не хочешь - используй while. И лучшей реализации for, чем в питоне, я пока не видел.
|
|
|
|
sutra |
26.2.2019, 5:24
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Цитата И лучшей реализации for, чем в питоне, я пока не видел. А я разве спорю? Вопрос, почему лучшее (если конечно однозначно признали лучшим) не взято на вооружение? Цитата Не хочешь - используй while. В Питоне не пробовал, а в ЛУА - вдоль и поперёк ВСЕ виды циклов, ВО ВСЕХ комбинациях и всё равно остался недоволен. Не знаю про Питон, про прочии прибамбасы, только я в зачуханном Делфи сделаю всё намного эффективнее и не так уж и много это займёт времени. А если будут критические моменты, можно заглянуть в прошлое и нарисовать на АСМе и КТО сможет обогнать?? Цитата Не хочешь - используй while С точки зрения НОРМАЛЬНОГО компилятора нет абсолютно никакой разницы между циклами. В разных видах цикла реализован свой вариант сравнения индекса и больше никакой разницы. У компилятора одна задача - приведение типов переменных. Если переменные одного типа, всё делается мгновенно на битовом уровне.
|
|
|
|
sutra |
26.2.2019, 6:00
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Спасибо за интересную дискуссию. Конечно, люди пытаются упростить синтаксис даже элементарных операторов. Да, все ругали begin и end паскалевские, ругались на точку с запятой, конечно же можно всё додумать умному компилятору за тупорылого юзера. Вот только надо ли? Если бы сидеть на одной платформе - ДА, это однозначно в плюс. А если на дню не раз меняешь? и везде свои правила? Кроме глупого засорения собственной памяти никаких преимуществ. И чего уж тут про синтаксис, давайте-ка голосом будем давать команды (тут уже были пожелания на сей счёт), на всех языках и диалектах и пусть только компилятор посмеет меня не понять, даже если я заикаюсь. Да и говорить мне лень, пусть сразу компилятор читает мои мысли и если они неправильные, сразу же исправляет. И вообще, как в тридевятом царстве, пусть вообще компилятор сам пишет прогу и сам играет в игрушку. Шутка! Что-то из этой шутки может и будет реализовано, но нам тупеть как-то вроде не с руки.
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|