模式,我正在做一個遊戲。遊戲由一架無限的飛機組成。單元必須位於離散正方形中,因此它們可以用簡單的方式定位Location { x :: Int, y :: Int }
如何在2D世界哈斯克爾
Unit
s可能有多種。有些可能是生物,有些可能只是物體,就像一塊石頭或木頭(想想那裏有二維的我的世界)。許多人將是空的(只是草或其他)。
你將如何在Haskell模型呢?我考慮過在下面做,但Object vs Creature呢?他們可能有不同的領域?規範化他們所有單位?
data Unit = Unit { x :: Int, y :: Int, type :: String, ... many shared properties... }
我也認爲具有位置類型
data Location = Location { x :: Int, y :: Int, unit :: Unit }
-- or this
data Location = Location { x :: Int, y :: Int }
data Unit = Unit { unitFields... , location :: Location }
你有什麼想法?在OO語言中,我可能會有Location
或Unit
從另一個繼承,並使單元的具體類型相互繼承。
另一個考慮因素是這會發送大量的這些對象通過線路的,所以我需要他們序列化JSON在客戶端上使用,並且不希望寫噸解析樣板。
使用'Data.Map.Map'作爲您的網格。 – 2012-01-18 01:38:07
那麼x和y只不過是地圖中的一個關鍵字,而單位只是各自的領域?什麼時候把它們發送給客戶,我是否也應該發送一個地圖/散列呢? – 2012-01-18 01:44:49