По идее она из сторон должна быть четной по определению.
Но фокус в том, что раз нельзя построить замкнутую линию, то и получается, общем случае — задача змейки не решаема.
при движении чисто по циклу, ближе к концу игры цели будут достигаться быстрее в среднем.
я думаю неоптимизированный и данный оптимизированный вариант движения +- равны (интересно было бы измерить или посчитать), просто оптимизированный быстрее проходит начало, неоптимизированный — конец.
Да согласен. Когда остаётся свободных клеточек равное одной длине змеи, то можно просто ползти по пути не сворачивая.
Змея даже на поздних этапах идет к мыши по кратчайшему пути. Единственное, что я не делаю – это поиск на 100% пути. Если мы не смогли найти за n итераций (где n — число клеточек), то мы просто пускаем змею по Гамельтонову пути. И пробуем найти новый пусть только после того как змея проползет количество клеток равное её длине. В таком случае мы не тратим в пустую время на поиск.
Так нет у нас их… Надо принять как данность, что есть значения с десятичной точностью… Которых явно не хватает на последнем участке. И по-хорошему нужно учесть, что изначальное состояние может быть любое… Просто эмулятор всегда стартует с определённых значений.
JS «С» подобный язык. А в решаемой задаче не требуется специфических знаний именно JS языка.
Как получить значения параметров можете взять из любого приведённого здесь кода.
С «camera» хак интересный… Я о таком не знал…
Хотя… Получается это чуть-чуть, в обход «обозначеных условий» задачи. Вопрос уже не к решению, а к постановке. Но пусть каждый решает сам для себя насколько допустимо такое.
Так весь прикол задачи в этом и есть:
* Мы не имеем точных данных о состоянии объекта
* Мы не имеем нормальных метрик относительно системы
* Мы не имеем (по факту) возможность подать не «единичное» усилие. [можно обойти это ограничение, ну почти… Но в этом тоже есть свой «шарм»]
В реальных условиях мы бы еще имели бы кучу проблем, о которых писалось выше, типа смешения центра масс или еще чего-то. Но в симуляторе этого нет.
Причем колбасить корабль начинает очень сильно… Давай опишу ситуацию. Примерно у последних ворот его начинает разгонять по амплитуде смещения. У меня такая проблема была еще на первой итерации кода, самой простой. Вот его разгонят и разгоняет… А возле самого корабля он просто нарезает круги по внешнему радиусу шлюза. Потом просто сталкивается со станцией.
Это я уже проходил)
Саму реализацию пока не смотрел, возможно вечерком гляну, в свободное время.
Вперёд. Сделаете решение лучше или проще, то вопросов нет. Я уже сказал, что буду рад посоревноваться. И, может, даже улучшить свой код.
Я учитывая, что мое решение, которое я писал в свободное после работы время пару вечеров назвали «дрянью», очень жду решения от вас.
Я чуть выше писал инструкцию.
1) Открыть сайт и запустить эмулятор.
2) Открыть консоль F12
3) Открыть вкладку Console
4) Вставить код из под «Спойлера». Нажать Enter. :)
5) Наслаждаться. :)
Но фокус в том, что раз нельзя построить замкнутую линию, то и получается, общем случае — задача змейки не решаема.
Да согласен. Когда остаётся свободных клеточек равное одной длине змеи, то можно просто ползти по пути не сворачивая.
Только я делаю это на всем протяжении пути, а не только на последнем участке.
JS «С» подобный язык. А в решаемой задаче не требуется специфических знаний именно JS языка.
Как получить значения параметров можете взять из любого приведённого здесь кода.
Хотя… Получается это чуть-чуть, в обход «обозначеных условий» задачи. Вопрос уже не к решению, а к постановке. Но пусть каждый решает сам для себя насколько допустимо такое.
Но вообще, идет к цели хорошо…
* Мы не имеем точных данных о состоянии объекта
* Мы не имеем нормальных метрик относительно системы
* Мы не имеем (по факту) возможность подать не «единичное» усилие. [можно обойти это ограничение, ну почти… Но в этом тоже есть свой «шарм»]
В реальных условиях мы бы еще имели бы кучу проблем, о которых писалось выше, типа смешения центра масс или еще чего-то. Но в симуляторе этого нет.
Было бы просто, я бы статью не стал бы пилить.)
Ну… У меня fail (дважды)
Причем колбасить корабль начинает очень сильно… Давай опишу ситуацию. Примерно у последних ворот его начинает разгонять по амплитуде смещения. У меня такая проблема была еще на первой итерации кода, самой простой. Вот его разгонят и разгоняет… А возле самого корабля он просто нарезает круги по внешнему радиусу шлюза. Потом просто сталкивается со станцией.
Это я уже проходил)
Саму реализацию пока не смотрел, возможно вечерком гляну, в свободное время.
Я учитывая, что мое решение, которое я писал в свободное после работы время пару вечеров назвали «дрянью», очень жду решения от вас.
1) Открыть сайт и запустить эмулятор.
2) Открыть консоль F12
3) Открыть вкладку Console
4) Вставить код из под «Спойлера». Нажать Enter. :)
5) Наслаждаться. :)
У меня вышло успешно. У Вас не получилось?