В настоящее время у меня есть карта 1600 x 1600, хранящаяся в MySQL (2,560,000 записей). Я даю простой 25x25-карту пользователям для взаимодействия. Пользователи могут «требовать» плитки на этой карте. Я хотел бы иметь возможность рассчитать количество открытых граней для плиток, принадлежащих данному пользователю. Я могу разделить это на общую плиту, чтобы определить произвольный рейтинг эффективности.Эффективность группы пикселей в пикселях PHP
Все координаты карты просто сохраняются как значения X/Y.
Я ищу что-то, что может потенциально обрабатывать массив указанных значений X/Y и определять, сколько открытых лиц доступно для каждой принадлежащей группе. Например ...
0 = player
x x x x x
x x 0 x x
x x x x x
4 open faces
x x x x x
x x 0 x x
x x 0 x x
x x x x x
6 open faces
x x x x x
x x x 0 x
x x 0 x x
x x x x x
8 open faces
Прямо сейчас я делаю несколько неэффективных циклов цикла, чтобы вычислить это. У меня есть простой счетчик, затем я перебираю массив всех значений и ищу значения + -1 в каждом направлении X и Y, чтобы уменьшить счет. Каждый цикл либо добавляет 0-4 к суммарному счетчику в зависимости от количества находок. Врожденная проблема с этим методом заключается в том, что по мере роста группы потребуется больше времени и времени для расчета. Так как одна группа может потреблять 20 000 очков, это довольно тяжелое бремя.
Любая помощь очень ценится.
я ожидал бы ваш третий пример будет 6 открытых граней снова, потому что 2 из этих граней «общий» –
Вот что делает это единственная проблема. Это отличается от того, что вы обычно думаете. – GameCharmer