Расшарить её невозможно. Данных много, а взаимодействие между процессами считай никакое. Пару байт в тик только для верховного мага вообще ни о чём. И он имеет свойство умирать, когда он ничего не считает и не передаёт.
А то, что там складывать надо, каждый раз заново не считалось (после первой же оптимизации). Каждый раз считалось только расстояние от точки до врага (один раз от каждого до каждой), который добавляет штрафы/бонусы. И это можно было ещё попытаться оптимизировать — прогонять значения «волной», наподобие рисования круга (других форм я не рисовал). И это похоже на то, что вы предлагаете. Но повторюсь ещё раз — не было необходимости всё усложнять, и так работало достаточно хорошо. Да и не совсем понятно, насколько это помогло бы, учитывая, что от каждого вражеского объекта генерировалось обычно больше 4 полей разных радиусов. А провозиться с этим вечер или два мне бы пришлось.
Собственно управляем каждым магом в отдельном процессе. И матрица соответствено одна на процесс. А графику в её изначальном виде однозначно не знаю, как прикрутить. Если что — видеокарты там нет, библиотек нет, используем только стандартные вещи (наподобие stl в С++). Да и даже если бы было — рисовать так, чтобы было адекватное смешение, мне неясно, как.
Я не понимаю, что под этим имеется ввиду. Ускорять, конечно, можно было. И как сделать оптимальней тоже можно придумать. По крайней мере у меня мысли есть, и, возможно, они о том же, о чём вы имеете ввиду. Да и во время оптимизации этой сетки 1.5 месяца назад мысли на эту тему тоже были. Но ускорять ещё сильнее, на мой взгляд, особо не требовалось, поэтому оставил как есть.
Может было бы и эффективней, но в первую очередь хотелось достичь простоты логики, иначе потом с ней можно было бы провозиться сильно дольше. А писать надо было достаточно много и кроме поиска пути. Поэтому нечто более сложное, чем поиск в ширину, писать не хотелось. Слишком давно я никаких новых алгоритмов не рассматривал и тем более не изучал.
Учитывая количество запросов по поводу кода — попробую восстановить git репозиторий… Выглядит так, что пару первых коммитов сломано. В крайнем случае чуть позже выложу итоговый код, без истории коммитов. Думаю история слабо интересна
А то, что там складывать надо, каждый раз заново не считалось (после первой же оптимизации). Каждый раз считалось только расстояние от точки до врага (один раз от каждого до каждой), который добавляет штрафы/бонусы. И это можно было ещё попытаться оптимизировать — прогонять значения «волной», наподобие рисования круга (других форм я не рисовал). И это похоже на то, что вы предлагаете. Но повторюсь ещё раз — не было необходимости всё усложнять, и так работало достаточно хорошо. Да и не совсем понятно, насколько это помогло бы, учитывая, что от каждого вражеского объекта генерировалось обычно больше 4 полей разных радиусов. А провозиться с этим вечер или два мне бы пришлось.
Учитывая количество запросов по поводу кода — попробую восстановить git репозиторий… Выглядит так, что пару первых коммитов сломано. В крайнем случае чуть позже выложу итоговый код, без истории коммитов. Думаю история слабо интересна