28:05 у этого муравья алгоритм преследования самый простейший: _- повернуться к цели в пределах 40 м; - выстрелить; - идти вперёд 1.5 секунды; - повторить._ То есть для того, чтобы не привести его к заводу, нужно разорвать дистанцию от бота до муравья наиболее быстрым способом. Полёт по огибающей явно не лучшая стратегия для этого, ведь бот тратит время и ХП на поворот, разгон, да ещё и движется криволинейно. Гораздо эффективнее будет подняться вертикально вверх, одновременно развернувшись и уже там начать двигаться в сторону завода по прямой. Мураш в это время будет топтаться на месте под нами. А после подъёма мы уже будем у края "сферы интереса" муравья, и достаточно будет пролететь всего 10-20 метров, чтобы он потерял к нам интерес -- тогда как при полёте вдоль земли потребуется пролететь все 40+ метров, и муравей будет преследовать бота несколько полуторасекундных циклов вместо одного.
@SmileSick7 ай бұрын
разумно. Я видимо, больше люблю рисковать. Хотя это и так понятно. Отправить одного бота в бой - то еще безрассудство)))
@boderaner7 ай бұрын
Если в функции ничего, кроме позиции объекта, не используется, логичнее сохранять в переменную сразу позицию, а не писать по всей функции item.position. Да и даже если используется, она не повредит. Я понимаю стремление разработчиков привить ученикам любовь к абстрагированию, экономии места в памяти и переиспользованию переменных, но «времена не те настали» и даже при программировании микроконтроллеров вряд ли кто-то обходится одной переменной, приговаривая «640 килобайт хватит всем». До сих пор теряюсь в догадках, зачем при рабочем конверторе и насыпанной возле него горе руды разрабы ещё и накидали титана по холмам. Попытка умножить пути прохождения? А по радару можно использовать как раз тот факт, что важные объекты видны астронавту после приземления: написать функцию «Лети по направлению моего взгляда» и пусть бот летит и находит эти объекты на местности. Тогда и retobject не понадобится (она в принципе введена для программирования уровней, а не для игроков). Главное, не забывать камеру переключать.
@SmileSick7 ай бұрын
позицию иногда сохраняю вместо объекта, но бывает, что и весь объект по привычке таскаю. Хотя по памяти тут еще нужно смотреть, что меньше занимает в памяти, так как object это ссылка в отличие от point. Не факт, что разрабы вообще о таких вещах заморачивались, как экономия памяти (Они над программированием то не сильно парились в миссиях, раз добавляли тренировки по стрельбе в конце игры) У них было в оригинале ограничение на количество символов, но чтобы память экономить. Про титан тоже вопрос. Я его при прошлых прохождениях никогда не замечал, а тут заглянул в файл и сам удивился. Камеру можно при помощи команды camerafocus переключать (жаль, что из Ceebot4 не все перенесли). Хотя это странно. Робот может уперется в объект, но заметит его только если камера переключена. Как не крути прятать объекты от сканера это странное решение. Прятали так уж совсем все, а не выборочно. Но тогда и инструменты сканирования стоит давать. В целом даже тип object странно работает. Нашли мы муравья и получили ссылку на его данные. Как это на физическом уровне происходит? Как эти данные считываются? На него жучек специальный ставится или браслет одевается, что все изменения видны, включая его наклоны относительно координат и направление его взгляда, и скорость перемещения по всем осям (для ос еще и высоту над уровнем земли и полную информацию о том, что они несут на данный момент). В общем сомнительно это все.
@boderaner7 ай бұрын
На объекты, думаю, просто вешается спутниковый сигнал, который может снимать данные в реальном времени. В принципе, можно даже высчитать, на какой высоте этот дрон над кораблём висит, если у него радиус обзора всего километр.
@SmileSick7 ай бұрын
@@boderaner это в любом случае не объясняет такие вещи как lifeTime объекта, тем более того, который находится в лапах осы. Но это все придирки. Просто приходится костылить в сложившихся условиях, которые выдали разработчики.