2015-02-09 114 views
2

我正在創建一個2d瓦片遊戲,並且想知道什麼是生成特定瓦片類型的集羣的最佳方法。例如,假設我有一個2d數組,這是我的地圖。草是由0在二維數組中隨機生成集羣

{{0, 0, 0, 0, 0, 0} 
{0, 0, 0, 0, 0, 0} 
{0, 0, 0, 0, 0, 0} 
{0, 0, 0, 0, 0, 0} 
{0, 0, 0, 0, 0, 0} 
{0, 0, 0, 0, 0, 0}} 

現在,我想要做的是隨機創建我的數組的樹羣(由1表示)表示。我希望它看起來像這樣:

{{0, 0, 0, 0, 0, 0} 
{0, 0, 0, 0, 0, 0} 
{0, 1, 1, 1, 0, 0} 
{0, 1, 1, 1, 1, 0} 
{0, 0, 1, 1, 1, 0} 
{0, 0, 1, 1, 0, 0}} 

什麼是最好的方法來做到這一點?

+0

你想要隨機樹或預定義的樹? – 2015-02-09 23:23:22

+0

目前尚不清楚問題是什麼。你卡在哪裏? – 2015-02-09 23:23:30

+0

我不知道如何隨機生成樹木。 – 2015-02-09 23:24:17

回答

1

實施一種方法M:對於給定的一組位置S,它將它們的相鄰位置N,但只包括其內部沒有樹的那些;將這些鄰近位置N的樹放入的一些中,並且遞歸地調用其自身遞歸地僅通過其中放置樹的相鄰位置K(K是N的子集)。隨機的地方樹在一個點p,並且ルM通過在一組剛剛位置p的方法/列表M.

該算法可以保證你會產生:

現在引發整個事情一個羣集(我的意思是一組樹木,其中每棵兩棵樹被其他樹木連接起來)。

確保遞歸在某個點停止(可以通過引入特定閾值或通過適當使用其他啓發式來實現此功能)。