我正在做一個基於瓷磚的遊戲。我嘗試做一個方法,返回一個我的角色可以根據x,y座標和移動限制移動的數組。瓷磚移動範圍生成模式?
例如,如果我輸入currentPosition:(3,3)moveLimit:1
那麼就應該給我回((3,2),(3,2),(3,4),( 4,3))
,如果我輸入currentPosition:(3,3)moveLimit:2
那麼它應該返回((3,1),(2,2),(3,2), (4,2),(1,3),(2,3),(4,3),(5,3),(2,4),(3,4),(4,4),(3 ,5))
我打算使用遞歸方法,使x和y都爲-1和+1。但效率非常低,因爲可能會出現很多重複的情況,例如+1和-1,然後是-1,然後是+1。
任何人都知道是否有任何好的模式呢?
非常感謝。
非常感謝你^^現在我可以繼續:D –
請注意,這將返回((3,2),(2,3),(3,4),(4,3)*和(3,3)*)。 – Vortexfive
@Vortexfive:正如它應該的那樣。我讀取「移動限制」作爲可能移動的最大數量,並且0是包含的。通過「跳過」'i = j = 0',可以輕鬆解決。但是 - 它會輸出'(3,3)'幾次(確切地說,4),如果這是一個問題,應該特別檢查這個特定的情況。 – amit