29 lines
779 B
Haskell
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
|