swarm-0.7.0.0: 2D resource gathering game with programmable robots
LicenseBSD-3-Clause
Safe HaskellNone
LanguageHaskell2010

Swarm.Game.Scenario.Topography.Grid

Description

 
Synopsis

Documentation

data Grid c Source #

Constructors

EmptyGrid 
Grid (NonEmptyGrid c) 

Instances

Instances details
Foldable Grid Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Methods

fold :: Monoid m => Grid m -> m #

foldMap :: Monoid m => (a -> m) -> Grid a -> m #

foldMap' :: Monoid m => (a -> m) -> Grid a -> m #

foldr :: (a -> b -> b) -> b -> Grid a -> b #

foldr' :: (a -> b -> b) -> b -> Grid a -> b #

foldl :: (b -> a -> b) -> b -> Grid a -> b #

foldl' :: (b -> a -> b) -> b -> Grid a -> b #

foldr1 :: (a -> a -> a) -> Grid a -> a #

foldl1 :: (a -> a -> a) -> Grid a -> a #

toList :: Grid a -> [a] #

null :: Grid a -> Bool #

length :: Grid a -> Int #

elem :: Eq a => a -> Grid a -> Bool #

maximum :: Ord a => Grid a -> a #

minimum :: Ord a => Grid a -> a #

sum :: Num a => Grid a -> a #

product :: Num a => Grid a -> a #

Traversable Grid Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Methods

traverse :: Applicative f => (a -> f b) -> Grid a -> f (Grid b) #

sequenceA :: Applicative f => Grid (f a) -> f (Grid a) #

mapM :: Monad m => (a -> m b) -> Grid a -> m (Grid b) #

sequence :: Monad m => Grid (m a) -> m (Grid a) #

Functor Grid Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Methods

fmap :: (a -> b) -> Grid a -> Grid b #

(<$) :: a -> Grid b -> Grid a #

FromJSON (Grid Char) Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Structure

ToJSON a => ToJSON (Grid a) Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Show c => Show (Grid c) Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Methods

showsPrec :: Int -> Grid c -> ShowS #

show :: Grid c -> String #

showList :: [Grid c] -> ShowS #

Eq c => Eq (Grid c) Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Methods

(==) :: Grid c -> Grid c -> Bool #

(/=) :: Grid c -> Grid c -> Bool #

newtype NonEmptyGrid c Source #

Constructors

NonEmptyGrid (NonEmpty (NonEmpty c)) 

Instances

Instances details
Foldable NonEmptyGrid Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Methods

fold :: Monoid m => NonEmptyGrid m -> m #

foldMap :: Monoid m => (a -> m) -> NonEmptyGrid a -> m #

foldMap' :: Monoid m => (a -> m) -> NonEmptyGrid a -> m #

foldr :: (a -> b -> b) -> b -> NonEmptyGrid a -> b #

foldr' :: (a -> b -> b) -> b -> NonEmptyGrid a -> b #

foldl :: (b -> a -> b) -> b -> NonEmptyGrid a -> b #

foldl' :: (b -> a -> b) -> b -> NonEmptyGrid a -> b #

foldr1 :: (a -> a -> a) -> NonEmptyGrid a -> a #

foldl1 :: (a -> a -> a) -> NonEmptyGrid a -> a #

toList :: NonEmptyGrid a -> [a] #

null :: NonEmptyGrid a -> Bool #

length :: NonEmptyGrid a -> Int #

elem :: Eq a => a -> NonEmptyGrid a -> Bool #

maximum :: Ord a => NonEmptyGrid a -> a #

minimum :: Ord a => NonEmptyGrid a -> a #

sum :: Num a => NonEmptyGrid a -> a #

product :: Num a => NonEmptyGrid a -> a #

Traversable NonEmptyGrid Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Methods

traverse :: Applicative f => (a -> f b) -> NonEmptyGrid a -> f (NonEmptyGrid b) #

sequenceA :: Applicative f => NonEmptyGrid (f a) -> f (NonEmptyGrid a) #

mapM :: Monad m => (a -> m b) -> NonEmptyGrid a -> m (NonEmptyGrid b) #

sequence :: Monad m => NonEmptyGrid (m a) -> m (NonEmptyGrid a) #

Functor NonEmptyGrid Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Methods

fmap :: (a -> b) -> NonEmptyGrid a -> NonEmptyGrid b #

(<$) :: a -> NonEmptyGrid b -> NonEmptyGrid a #

FunctorWithIndex Coords NonEmptyGrid Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Methods

imap :: (Coords -> a -> b) -> NonEmptyGrid a -> NonEmptyGrid b #

ToJSON c => ToJSON (NonEmptyGrid c) Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Generic (NonEmptyGrid c) Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Associated Types

type Rep (NonEmptyGrid c) 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

type Rep (NonEmptyGrid c) = D1 ('MetaData "NonEmptyGrid" "Swarm.Game.Scenario.Topography.Grid" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-topography" 'True) (C1 ('MetaCons "NonEmptyGrid" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (NonEmpty c)))))

Methods

from :: NonEmptyGrid c -> Rep (NonEmptyGrid c) x #

to :: Rep (NonEmptyGrid c) x -> NonEmptyGrid c #

Show c => Show (NonEmptyGrid c) Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

Eq c => Eq (NonEmptyGrid c) Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

type Rep (NonEmptyGrid c) Source # 
Instance details

Defined in Swarm.Game.Scenario.Topography.Grid

type Rep (NonEmptyGrid c) = D1 ('MetaData "NonEmptyGrid" "Swarm.Game.Scenario.Topography.Grid" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-topography" 'True) (C1 ('MetaCons "NonEmptyGrid" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (NonEmpty c)))))

gridToVec :: Grid a -> Vector (Vector a) Source #

Converts linked lists to vectors to facilitate random access when assembling the image

mapWithCoords :: (Coords -> a -> b) -> Grid a -> [b] Source #

allMembers :: Grid a -> [a] Source #

mapRowsNE :: (NonEmpty (NonEmpty a) -> NonEmpty (NonEmpty b)) -> NonEmptyGrid a -> NonEmptyGrid b Source #

Since the derived Functor instance applies to the type parameter that is nested within lists, we define an explicit function for mapping over the enclosing lists.

getRows :: Grid a -> [[a]] Source #

mkGrid :: [[a]] -> Grid a Source #