2013-03-30 125 views
1

我正試圖用Java編寫一個小遊戲。在2D陣列中生成世界地圖

世界地圖有100個位置(每個位置是一個國家或任何一個海)。 有6個大陸有4到15個國家。該地圖有76個國家和24個海域。 每個大陸都連接到至少有一個國家的另一個大陸。

例子:

Map

正如你可以看到黃色的大陸仍然在地圖上的底部。

我在想將世界地圖存儲在二維數組中。糟糕/好主意? 要建立地圖,我會確定國家的大小,挑選一個隨機點,並隨機填充陣列以建立國家。

這是不錯的方法嗎?

+0

你有地圖,你想計算國家的大小? – boomz

回答

0
"Is this the good approach?" 

這個問題有點難回答,因爲它是非常主觀。二維數組可以工作,但如果您希望稍後添加其他數據/功能,則可能會受到限制。如果你使用顏色的數組,例如開始了,但後來想補充軍隊/諸如此類的東西,你必須改變數組,也許到自定義Tile對象...

如果它是我的遊戲,我會建立一個接口(然後是一個自定義類)來表示WorldMap。我會定義方法,比如setCountry(),這對我的遊戲有意義。現在到最後我可能會用二維數組來支持它(至少要開始),但通過預先創建一個接口,您可以稍後添加功能變得更容易。也許有一天你想要一個動態大小的世界,現在你可以將2D陣列換成其他一些Collection而不改變你的所有遊戲邏輯。

您的「填充地圖」問題是另一個未解決的問題,因爲我可以看到可能強制執行連接規則的問題,如果您只是隨意填寫。