我目前有一個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
現在我正在做一些低效率的數組循環計算出來。我有一個簡單的計數器,然後我循環遍歷所有值的數組,並在X和Y的每個方向上查找值+ -1以減少計數。每個循環根據查找次數將0-4加到總計數器中。這種方法固有的問題是,隨着一個羣體的增長,計算出來需要的時間越來越長。由於一個團隊有可能再消費20000點,這是一個很大的負擔。
任何幫助,非常感謝。
我本來期望你的第三個例子是6個再次開放面,因爲那些面孔2「共享」 –
這是什麼使這一個獨特的問題。這與你通常想象的不同。 – GameCharmer