diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Bee.hs | 9 | ||||
-rw-r--r-- | src/Beekeep.hs | 41 | ||||
-rw-r--r-- | src/MyLib.hs | 4 | ||||
-rw-r--r-- | src/Plant.hs | 27 |
4 files changed, 77 insertions, 4 deletions
diff --git a/src/Bee.hs b/src/Bee.hs new file mode 100644 index 0000000..b83e67e --- /dev/null +++ b/src/Bee.hs @@ -0,0 +1,9 @@ +module Bee + ( Beehive (..) + ) where + +data Beehive = Beehive + { hiveWorkers :: Int + , hiveOwner :: String + } + diff --git a/src/Beekeep.hs b/src/Beekeep.hs new file mode 100644 index 0000000..9fb874a --- /dev/null +++ b/src/Beekeep.hs @@ -0,0 +1,41 @@ +module Beekeep + ( Garden + , Block (..) + , gardenWidth + , gardenHeight + , newGarden + , gardenSet + , gardenGet + ) where +import Bee +import Plant +import Data.Array.IO + +someFunc :: IO () +someFunc = putStrLn "someFunc" + +data Block = + BEmpty + | BPlant Plant + | BHive Beehive + +type Garden = IOArray Int Block + +gardenWidth :: Int +gardenWidth = 128 + +gardenHeight :: Int +gardenHeight = 128 + +newGarden :: IO Garden +newGarden = newArray (1, gardenWidth * gardenHeight) BEmpty + +calcGardenIndex :: (Int, Int) -> Int +calcGardenIndex (x, y) = x + y * gardenHeight + +gardenGet :: Garden -> (Int, Int) -> IO Block +gardenGet g coords = readArray g (calcGardenIndex coords) + +gardenSet :: Garden -> (Int, Int) -> Block -> IO () +gardenSet g coords b = writeArray g (calcGardenIndex coords) b + diff --git a/src/MyLib.hs b/src/MyLib.hs deleted file mode 100644 index e657c44..0000000 --- a/src/MyLib.hs +++ /dev/null @@ -1,4 +0,0 @@ -module MyLib (someFunc) where - -someFunc :: IO () -someFunc = putStrLn "someFunc" diff --git a/src/Plant.hs b/src/Plant.hs new file mode 100644 index 0000000..04e35e7 --- /dev/null +++ b/src/Plant.hs @@ -0,0 +1,27 @@ +module Plant + ( GrowthStage (..) + , PlantType (..) + , Plant (..) + , Seed (..) + ) where + +data GrowthStage = + SSeed + | SSapling + | SGrown + +data PlantType = + TFlower + | TCrop + | TTree + +data Plant = Plant + { plantName :: String + , plantType :: PlantType + , plantStage :: GrowthStage + } + +data Seed = Seed + { seedName :: String + , seedType :: PlantType } + |