diff --git a/src/Map/Maps.hs b/src/Map/Maps.hs new file mode 100644 index 0000000..3703246 --- /dev/null +++ b/src/Map/Maps.hs @@ -0,0 +1,14 @@ +module Map.Maps +where + +import Map.Types + +-- potentially to be expanded to Nodes +giveNeighbours :: (Int, Int) -> [(Int,Int)] +giveNeighbours (x,y) = filter (not . negative) all + where + all = if even y then [(x+1,y), (x-1,y), (x,y+1), (x,y-1), (x+1,y+1), (x+1,y-1)] + else [(x+1,y), (x-1,y), (x,y+1), (x,y-1), (x-1,y+1), (x-1,y-1)] + + negative :: (Int, Int) -> Bool + negative (x,y) = x < 0 || y < 0 diff --git a/src/Map/StaticMaps.hs b/src/Map/StaticMaps.hs index 895fdc5..b88340c 100644 --- a/src/Map/StaticMaps.hs +++ b/src/Map/StaticMaps.hs @@ -4,8 +4,17 @@ where import Map.Types import Data.Array -gauss2Dgeneral :: Floating q => q -> q -> q -> q -> q -> q -> q -> q -gauss2Dgeneral amp x0 y0 sX sY x y = amp * exp (-(((x-x0)^2/(2 * sX^2))+((y-y0)^2/(2 * sY^2)))) +-- general 2D-Gaussian +gauss2Dgeneral :: Floating q => + q -- ^ Amplitude + -> q -- ^ Origin on X-Achsis + -> q -- ^ Origin on Y-Achsis + -> q -- ^ Sigma on X + -> q -- ^ Sigma on Y + -> q -- ^ Coordinate in question on X + -> q -- ^ Coordinate in question on Y + -> q -- ^ elevation on coordinate in question +gauss2Dgeneral amp x0 y0 sX sY x y = amp * exp(-(((x-x0)^2/(2 * sX^2))+((y-y0)^2/(2 * sY^2)))) gauss2D :: Floating q => q -> q -> q gauss2D x y = gauss2Dgeneral 15 100.0 100.0 15.0 15.0 x y diff --git a/src/Map/Types.hs b/src/Map/Types.hs index f55afc1..2599f5c 100644 --- a/src/Map/Types.hs +++ b/src/Map/Types.hs @@ -9,7 +9,7 @@ type PlayMap = Array (XCoord, ZCoord) Node type XCoord = Int type ZCoord = Int -type YCoord = Float +type YCoord = Float data MapType = GrassIslandMap | DesertMap @@ -22,10 +22,10 @@ instance Show PlayerInfo where show (NoPlayer) = "not occupied" show (Occupied i) = "occupied by player " ++ (show i) --- | Path info, is this node part of a path? +-- | Path info, is this node part of a path and if so, where does it lead? data PathInfo = NoPath - | Path | Border + | Paths [(XCoord, YCoord)] deriving (Show, Eq) -- | What resources can be harvested here?