packages feed

brillo-examples-2.0.0: picture/PacMan/Maze.hs

module Maze where

import Brillo


coords :: [Point]
coords =
  [ (0, 1)
  , (-9, -11)
  , (-9, -10)
  , (-9, -9)
  , (-9, -8)
  , (-9, -7)
  , (-9, -6)
  , (-9, -5)
  , (-9, -4)
  , (-9, -3)
  , (-9, -1)
  , (-9, 1)
  , (-9, 3)
  , (-9, 4)
  , (-9, 5)
  , (-9, 6)
  , (-9, 7)
  , (-9, 8)
  , (-9, 9)
  , (9, -10)
  , (9, -9)
  , (9, -8)
  , (9, -7)
  , (9, -6)
  , (9, -5)
  , (9, -4)
  , (9, -3)
  , (9, -1)
  , (9, 1)
  , (9, 3)
  , (9, 4)
  , (9, 5)
  , (9, 6)
  , (9, 7)
  , (9, 8)
  , (9, 9)
  , (-9, -11)
  , (-8, -11)
  , (-7, -11)
  , (-6, -11)
  , (-5, -11)
  , (-4, -11)
  , (-3, -11)
  , (-2, -11)
  , (-1, -11)
  , (0, -11)
  , (1, -11)
  , (2, -11)
  , (3, -11)
  , (4, -11)
  , (5, -11)
  , (6, -11)
  , (7, -11)
  , (8, -11)
  , (9, -11)
  , (-9, 9)
  , (-8, 9)
  , (-7, 9)
  , (-6, 9)
  , (-5, 9)
  , (-4, 9)
  , (-3, 9)
  , (-2, 9)
  , (-1, 9)
  , (0, 9)
  , (1, 9)
  , (2, 9)
  , (3, 9)
  , (4, 9)
  , (5, 9)
  , (6, 9)
  , (7, 9)
  , (8, 9)
  , (9, 9)
  , (-2, 0)
  , (2, 0)
  , (1, 1)
  , (-1, 1)
  , (2, 1)
  , (-2, 1)
  , (-2, -1)
  , (-1, -1)
  , (0, -1)
  , (1, -1)
  , (2, -1)
  , (0, 3)
  , (0, 4)
  , (0, 5)
  , (0, 7)
  , (0, 8)
  , (0, -3)
  , (0, -4)
  , (0, -5)
  , (0, -7)
  , (0, -8)
  , (0, -9)
  , (1, 5)
  , (1, -3)
  , (1, -7)
  , (2, 3)
  , (2, 5)
  , (2, 7)
  , (2, -3)
  , (2, -5)
  , (2, -7)
  , (2, -9)
  , (3, 3)
  , (3, 7)
  , (3, -5)
  , (3, -9)
  , (4, 1)
  , (4, 2)
  , (4, 3)
  , (4, 4)
  , (4, 5)
  , (4, 7)
  , (4, -1)
  , (4, -2)
  , (4, -3)
  , (4, -5)
  , (4, -7)
  , (4, -8)
  , (4, -9)
  , (5, -9)
  , (6, 1)
  , (6, 2)
  , (6, 3)
  , (6, 5)
  , (6, 7)
  , (6, -1)
  , (6, -2)
  , (6, -3)
  , (6, -5)
  , (6, -6)
  , (6, -7)
  , (6, -9)
  , (7, 1)
  , (7, 3)
  , (7, 5)
  , (7, 7)
  , (7, -1)
  , (7, -3)
  , (7, -5)
  , (7, -9)
  , (8, 1)
  , (8, 3)
  , (8, -1)
  , (8, -3)
  , (8, -7)
  , (10, 1)
  , (10, -1)
  , (2, 0)
  , (-2, 0)
  , (-1, 1)
  , (1, 1)
  , (-2, 1)
  , (2, 1)
  , (2, -1)
  , (1, -1)
  , (0, -1)
  , (-1, -1)
  , (-2, -1)
  , (0, 3)
  , (0, 4)
  , (0, 5)
  , (0, 7)
  , (0, 8)
  , (0, -3)
  , (0, -4)
  , (0, -5)
  , (0, -7)
  , (0, -8)
  , (0, -9)
  , (-1, 5)
  , (-1, -3)
  , (-1, -7)
  , (-2, 3)
  , (-2, 5)
  , (-2, 7)
  , (-2, -3)
  , (-2, -5)
  , (-2, -7)
  , (-2, -9)
  , (-3, 3)
  , (-3, 7)
  , (-3, -5)
  , (-3, -9)
  , (-4, 1)
  , (-4, 2)
  , (-4, 3)
  , (-4, 4)
  , (-4, 5)
  , (-4, 7)
  , (-4, -1)
  , (-4, -2)
  , (-4, -3)
  , (-4, -5)
  , (-4, -7)
  , (-4, -8)
  , (-4, -9)
  , (-5, -9)
  , (-6, 1)
  , (-6, 2)
  , (-6, 3)
  , (-6, 5)
  , (-6, 7)
  , (-6, -1)
  , (-6, -2)
  , (-6, -3)
  , (-6, -5)
  , (-6, -6)
  , (-6, -7)
  , (-6, -9)
  , (-7, 1)
  , (-7, 3)
  , (-7, 5)
  , (-7, 7)
  , (-7, -1)
  , (-7, -3)
  , (-7, -5)
  , (-7, -9)
  , (-8, 1)
  , (-8, 3)
  , (-8, -1)
  , (-8, -3)
  , (-8, -7)
  , (-10, 1)
  , (-10, -1)
  ]


pelletsL :: [Point]
pelletsL =
  [ (-8, -10)
  , (-7, -10)
  , (-6, -10)
  , (-5, -10)
  , (-4, -10)
  , (-3, -10)
  , (-2, -10)
  , (-1, -10)
  , (-5, -8)
  , (-5, -7)
  , (-5, -6)
  , (-5, -5)
  , (-5, -4)
  , (-5, -3)
  , (-5, -2)
  , (-5, -1)
  , (-5, 0)
  , (-5, 1)
  , (-5, 2)
  , (-5, 3)
  , (-5, 4)
  , (-5, 5)
  , (-5, 6)
  , (-5, 7)
  , (-5, 8)
  , (-8, -9)
  , (-8, -8)
  , (-7, -8)
  , (-6, -8)
  , (-7, -7)
  , (-7, -6)
  , (-8, -5)
  , (-8, -4)
  , (-1, -4)
  , (-2, -4)
  , (-3, -4)
  , (-4, -4)
  , (-6, -4)
  , (-7, -4)
  , (-8, -4)
  , (-1, -5)
  , (-5, -6)
  , (-1, -6)
  , (-2, -6)
  , (-3, -6)
  , (-4, -6)
  , (-3, -7)
  , (-3, -8)
  , (-1, -8)
  , (-2, -8)
  , (-1, -9)
  , (-1, 4)
  , (-1, 6)
  , (-1, 7)
  , (-1, 8)
  , (-2, 4)
  , (-2, 6)
  , (-2, 8)
  , (-3, 4)
  , (-3, 5)
  , (-3, 6)
  , (-3, 8)
  , (-4, 6)
  , (-4, 8)
  , (-6, 4)
  , (-6, 6)
  , (-6, 8)
  , (-7, 4)
  , (-7, 6)
  , (-7, 8)
  , (-8, 4)
  , (-8, 5)
  , (-8, 6)
  , (-8, 8)
  , (8, -10)
  , (7, -10)
  , (6, -10)
  , (5, -10)
  , (4, -10)
  , (3, -10)
  , (2, -10)
  , (1, -10)
  , (5, -8)
  , (5, -7)
  , (5, -6)
  , (5, -5)
  , (5, -4)
  , (5, -3)
  , (5, -2)
  , (5, -1)
  , (5, 0)
  , (5, 1)
  , (5, 2)
  , (5, 3)
  , (5, 4)
  , (5, 5)
  , (5, 6)
  , (5, 7)
  , (5, 8)
  , (8, -9)
  , (8, -8)
  , (7, -8)
  , (6, -8)
  , (7, -7)
  , (7, -6)
  , (8, -5)
  , (8, -4)
  , (1, -4)
  , (2, -4)
  , (3, -4)
  , (4, -4)
  , (6, -4)
  , (7, -4)
  , (8, -4)
  , (1, -5)
  , (5, -6)
  , (1, -6)
  , (2, -6)
  , (3, -6)
  , (4, -6)
  , (3, -7)
  , (3, -8)
  , (1, -8)
  , (2, -8)
  , (1, -9)
  , (1, 4)
  , (1, 6)
  , (1, 7)
  , (1, 8)
  , (2, 4)
  , (2, 6)
  , (2, 8)
  , (3, 4)
  , (3, 5)
  , (3, 6)
  , (3, 8)
  , (4, 6)
  , (4, 8)
  , (6, 4)
  , (6, 6)
  , (6, 8)
  , (7, 4)
  , (7, 6)
  , (7, 8)
  , (8, 4)
  , (8, 5)
  , (8, 6)
  , (8, 8)
  , (0, -10)
  , (0, 6)
  ]


powerPellet :: [Point]
powerPellet = [(-8, -6), (8, -6), (-8, 7), (8, 7)]


crossR :: [Point]
crossR =
  [ (1, 2)
  , (1, 6)
  , (3, 6)
  , (5, 6)
  , (8, 6)
  , (5, 8)
  , (8, 6)
  , (3, -4)
  , (5, -4)
  , (1, -6)
  , (3, -6)
  , (5, -6)
  , (7, -8)
  , (1, -10)
  , (-1, 2)
  , (-1, 6)
  , (-3, 6)
  , (-5, 6)
  , (-8, 6)
  , (-5, 8)
  , (-8, 6)
  , (-3, -4)
  , (-5, -4)
  , (-1, -6)
  , (-3, -6)
  , (-5, -6)
  , (-7, -8)
  , (-1, -10)
  , (-5, 4)
  , (5, 4)
  ]


renderS :: Point -> Picture
renderS (x, y) =
  Translate (x * 30) (y * 30) wallBlock
  where
    wallBlock = Color (dark blue) $ rectangleSolid 30 30


renderW :: [Point] -> Picture
renderW walls = Pictures [renderS w | w <- walls]