factory-lang/Element.hs

29 lines
779 B
Haskell

module Element where
data Element = Element { value :: Integer
, xPos :: Int
, yPos :: Int
, state :: Bool
} deriving (Eq, Show)
decVal :: Element -> Element
decVal (Element v x y s) = Element (v - 1) x y s
incVal :: Element -> Element
incVal (Element v x y s) = Element (v + 1) x y s
incXPos :: Element -> Element
incXPos (Element v x y s) = Element v (x + 1) y s
decXPos :: Element -> Element
decXPos (Element v x y s) = Element v (x - 1) y s
incYPos :: Element -> Element
incYPos (Element v x y s) = Element v x (y + 1) s
decYPos :: Element -> Element
decYPos (Element v x y s) = Element v x (y - 1) s
kill :: Element -> Element
kill (Element v x y _) = Element v x y False