yavaskript, ответ на ваш вопрос зависит от множества факторов: размера игрового поля, количества игроков, частоты обращения к тем или иным игровым функциям и д.р. . При этом существуют 2 основных типа оптимизации, первый - минимизируется расход памяти за счет увеличения объемов вычислений, второй минимизируется объем вычислений за счет их предвычисления и кэширования результатов в памяти (то что делаете вы). В общем случае, выбор типа оптимизации зависит от частоты использования функционала, ее содержащего. В случае если функционал используется редко (ваш случай) то желательно оптимизировать по памяти, если часто (очень часто) то по скорости выполнения. Но в конечном счете решать вам)
То есть КАДЖАЯ игровая клетка у вас содержит расстояние до игрока?
1. а что вы будете делать если игрок изменит свою позицию? пересчитывать расстояния для ВСЕХ игровых клеток?
2. а что вы будете делать если у вас НЕСКОЛЬКО ИГРОКОВ? хранить и пересчитывать расстояния для ВСЕХ игровых клеток до ВСЕХ игроков?
не проще ли рассчитывать расстояние по необходимости?
RabraBabr, исходя из своего опыта смею предположить, что свой векторный редактор написали максимум 20% студентов, а остальным 80% его написали другие...)
longclaps, я в принципе согласен с вашим первым комментарием, просто интонация высказываний избыточно груба на мой взгляд и это меня толкает на негатив, видимо тоже имею психологические проблемы)
Максим, может ну его нафиг программить их уникальность а просто запилить для этой цели генетический алгоритм с ситуативным ветвлением логики выбора набора действий?
Уважаемый longclaps, вы очень много хамите/грубите людям, хоть и делаете это всегда по существу, но все же черезмерно жестко. У вас какие-то психологические проблемы? Может вам всучили класс имбицилов, и вы настолько устали вдалбливать им азы, что теперь склонны видеть во всех людях своих подопечных?
Даниил Демидко, в примерах ниже реализованны пункты 1, 2, 5, а в последнем примере частично и через жо.у пункты 3 и 4 (элементы перетягиваются на холст из меню слева, а также на самом холсте) правда на js, но можно подглядеть логику скрола, зума и отрисовки объектов с их учетом.
Дмитрий, очевидно, что если не существует варианта, помимо мерджа, то вопрос не имел смысла. Мне было интересно, существуют ли другие варианты кроме класмики и мерджа. Видимо ничего нового/интересного м улобного не появилось. Закпываб вопрос.
UPD Если предпочитаете деструктуризацию и не нравится упомянутый код, то вместо options||{}
в параметрах функции сделайте значение по умолчанию anyFunc(options = {}){
это было как пример, возможны и более глубокие уровни вложенности, не только options.format но и например options.world.dimension или options.learn.learnset и так далее
dollar, согласен, тут классическая вилка и я не могу решить как мне больше подходит. Подожду еще немного, может подкинут еще вариантов, там и буду думать как лучше)