{-# LANGUAGE DeriveGeneric #-} module Battlesnake.Core.Board where import Battlesnake.Core.Battlesnake (Battlesnake) import Battlesnake.Core.Coordinate (Coordinate) import Data.Aeson (FromJSON, ToJSON) import GHC.Generics {-| The game board. See: https://docs.battlesnake.com/api/objects/board -} data Board = Board { height :: Integer -- ^ The height of the board , width :: Integer -- ^ The width of the board , food :: [Coordinate] -- ^ A list of coordinates representing food locations , hazards :: [Coordinate] -- ^ A list of coordinates representing hazard locations , snakes :: [Battlesnake] -- ^ A list of all snakes on the board } deriving (Show, Generic) instance ToJSON Board instance FromJSON Board