2013-02-06 71 views
0

我有一個網格(4x6),其中包含較小的瓷磚/塊。 當有人在網格中移動時,我需要跟蹤他們到達的具體位置。 所以,如果我人數瓷磚跟蹤動態導航

1- 2- 3- 4- 5- 6 
7- 8- 9-10-11-12 
13-14-15-16-17-18 

現在,如果我在10,我可以搬到4,9,11,0r 16

我應該如何跟蹤呢?我可以使用什麼數據結構來存儲這些信息?

+0

你想追蹤這個人到底在哪裏,或者他們能去哪裏? – Kevin

+0

他去過哪裏。 – 12rad

+0

只需使用一個堆棧。在每次移動後推動堆疊。 –

回答

0

3選項。這樣做的

OOP方式:

創建一個包含內部的二維數組的網格類。它可以用來創建方法,如surrounding(int x, int y)這將返回周圍的瓷磚。

二維數組。

像OOP的方式,但有點混亂。你會從(x-1,y),(x + 1,y),(x,y + 1),(x,y - 1)得到周圍的貼圖。

1D陣列。

就像你在你的例子。這可能會更難以使用,我不會推薦它。如果你確實想用這種方式,你可能必須爲網格的'寬度'設置另一個int變量。在提供的示例中,它是6,所以周圍的瓦片將是:

(1-6),(1-1),(i + 1),(i + 6)。

我強烈推薦二維數組或網格選項。我喜歡的網格非常好,如果你肛門儘可能幻想。